【问题标题】:Is it possible to generate a unique id for new models in Backbone collection?是否可以为 Backbone 集合中的新模型生成唯一 ID?
【发布时间】:2017-01-10 15:35:36
【问题描述】:

我有一个来自 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"

是否可以从客户端生成它?

【问题讨论】:

    标签: javascript backbone.js backbone.js-collections


    【解决方案1】:

    一种解决方案是仅发送"name",并在插入数据库期间在服务器上生成"id"

    id,如果保存在数据库中,应该由数据库处理。永远不要尝试增加最后一个 id 或使用集合长度作为唯一标识符。

    临时客户ID:cid

    Backbone 为模型和视图提供 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?

    【讨论】:

      猜你喜欢
      • 2015-02-01
      • 2019-04-06
      • 1970-01-01
      • 2012-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      相关资源
      最近更新 更多