我有一个来自 serer 的 Backbone 集合,其属性为 id
和 name
。
我从输入中得到新的名字。
var a = $('#newFoodtype').val();
并创建新模型并添加到集合中;
var b = new app.Foodtype({ "name" :a });
this.collection.add(b);
新模型没有 id
属性。我知道所有模型都有一个 id
。
如何生成唯一 ID 并将其设置为新模型。
我将删除集合中的一些模型,因此 collection.length
是个好主意。我会将其发送到服务器。一种解决方案是在插入数据库期间仅发送 "name"
并在服务器上生成 "id"
。
是否可以从客户端生成这个?
最佳答案
One solution is to send only the
"name"
and generate the"id"
on the server during the insert to the DB.
id
,如果保存在数据库中,应该由数据库处理。切勿尝试增加最后一个 id 或使用集合长度作为唯一标识符。
临时客户端id:cid
Backbone 给模型和 View 一个 cid
property这是一个“客户ID”。它仅对该客户端实例是唯一的,刷新后将不再是唯一的。它用于在保存模型并为其提供最终 ID 之前识别模型。
var newModel = Backbone.Model({ name: "new model" });
console.log(newModel.cid); // e.g.: "c123"
生成GUID
如果它不是数据库的 id,而只是业务逻辑的唯一标识符,您可以生成一个冲突几率较低的 GUID。
关于javascript - 是否可以为 Backbone 集合中的新模型生成唯一 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41572525/