骨干关系 - 无法实例化多个,,,

时间:2012-09-21 15:02:59

标签: backbone.js backbone-relational

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

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

正如您在this issue中看到的那样,我不断收到错误

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

每当我更改View或重新加载Collection时。

现在我知道有一个帖子here他们建议使用findOrCreate,但我不是单独访问模型,而是使用Collection.fetch。有没有解决这个问题的方法?

3 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:1)

我遇到了类似的问题,通过切换到Backbone-associations修复了它。

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

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

答案 2 :(得分:0)

我遇到了类似的问题,我需要用函数初始化模型:

model: ->

   return new Project.Models.ModelName()

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