javascript - 是否可以为 Backbone 集合中的新模型生成唯一 ID?

标签 javascript backbone.js backbone.js-collections

我有一个来自 serer 的 Backbone 集合,其属性为 idname

我从输入中得到新的名字。

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。

参见 Create GUID / UUID in JavaScript?

关于javascript - 是否可以为 Backbone 集合中的新模型生成唯一 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41572525/

相关文章:

javascript - 由于 JavaScript 的限制,Vue 无法检测数组的更改。有什么限制?

javascript - 如何在带有typekit的网站上使用Trajan字体?

javascript - 将 html5 视频跳到末尾的按钮

javascript - 在 Backbone.js 中将函数设置为属性给我一个错误,但如果我在初始化方法中设置它,它就会工作

javascript - 如何更新数据库中的整个 Backbone.js 集合?

javascript - 刷新页面后如何清除该值

javascript - 如何在带有 pushState 的 Backbone 中使用 SEO 友好的 URL?

javascript - 嵌套 Backbone.js 获取

javascript - 将 jQuery UI Sortable 的顺序保存到 Backbone.js 集合

javascript - 将 JSON 映射到 backbone.js 集合