0

因此,我深入研究了 Backbone.js 框架,终于到了玩模型/集合的地步。

事情就是这样。我使用 localstorage 作为数据库,我的问题是我没有看到我的 id 看起来像这样:

id : "53ec77a0-8b06-c31b-d72c-a350741898d0"

是否有一个简单的解决方案可以将 id 设置为更合适的外观,例如 1、2、3 甚至像 cid。我已经用 cid 试过了,但它也不好,因为每次你从本地存储中获取数据时它都会改变......

提前致谢!

/哈里斯

4

1 回答 1

1

嗯,我不确定你为什么要这样做,定义 ID 并确保它们的唯一性实际上是适配器的工作,而不是你的!

如果您查看主干本地存储的代码,您可以在此处看到创建问题的行:

 create: function(model) {
    if (!model.id) {
      model.id = guid();
      model.set(model.idAttribute, model.id);
    }
    ...
  }

所以,有两种方法可以解决这个问题:

  1. Fork 主干 localstorage 以更好的方式替换对 guid() 的调用(它只是生成随机 id,它不会尝试确保唯一性)。

  2. 在调用 save() 之前提供您自己的 ID。对于 localstorage,这是可以接受的,因为对 id 没有真正的限制,但是让它变得独一无二就成了你的工作,特别是在你的应用程序的多次运行[关闭+重新打开浏览器](你可以保留 lastId您的本地存储并每次都增加它,以使其表现得像数据库中具有 AutoIncrement 的主键,我猜)

于 2013-12-04T14:25:31.250 回答