7

我一直在使用骨干关系(https://github.com/PaulUithol/Backbone-relational)来构建我的应用程序,因为我有一个模型(房间),并附加了许多其他模型:

  • 房间有很多评论
  • 房间属于位置

正如您在这个问题中看到的那样,我不断收到错误消息

Error: Cannot instantiate more than one Backbone.RelationalModel with the same id per type

每当我更改视图或重新加载集合时。

现在我知道这里有一个他们建议使用的线程findOrCreate我不是单独访问模型,而是使用Collection.fetch. 有没有办法解决这个问题?

4

3 回答 3

2

使用主干关系,您可以从关系存储中获取或创建对象。使用它来创建关系对象:

this.model = someModel.findOrCreate({id: 123})

这样,它将创建新对象或从关系存储中获取现有对象。

http://backbonerelational.org/#RelationalModel-findOrCreate

于 2013-07-04T06:49:50.080 回答
1

我有一个类似的问题,通过切换到 Backbone-associations 来解决它。

https://github.com/dhruvaray/backbone-associations

界面几乎完全相同,只有一些细微差别,因此移植应该非常简单。

于 2013-06-10T22:42:58.457 回答
0

我有类似的问题,碰巧我需要用函数初始化模型:

model: ->

   return new Project.Models.ModelName()

当你需要_tree 时。在 application.js 中,模型文件的加载时间晚于集合文件(按字母顺序)。使用功能设置模型等到应用程序执行。

于 2013-01-17T14:22:28.323 回答