我一直在使用主干关系(https://github.com/PaulUithol/Backbone-relational)来构建我的应用程序,因为我有一个附加了许多其他模型的模型(Room):
- 房间有很多评论
- 房间属于位置
正如您在此问题中看到的,我不断收到错误
Error: Cannot instantiate more than one Backbone.RelationalModel with the same id per type
每当我更改视图或重新加载集合时。
现在我知道这里有一个线程,他们建议使用 findOrCreate
但我不是单独访问模型,而是使用 Collection.fetch
.有没有办法解决这个问题?
使用主干关系,您可以从关系存储中获取或创建对象。使用此选项创建关系对象:
this.model = someModel.findOrCreate({id: 123})
有了这个,它将创建新对象或从关系存储中获取现有对象。
http://backbonerelational.org/#RelationalModel-findOrCreate
我遇到了类似的问题,通过切换到骨干关联来修复它。
https://github.com/dhruvaray/backbone-associations
界面几乎完全相同,只有一些细微的差异,因此移植应该非常简单。
我遇到了类似的问题,碰巧我需要用函数初始化模型:
model: ->
return new Project.Models.ModelName()
在应用程序中require_tree . 时.js则模型文件的加载时间晚于集合文件(按字母顺序排列)。使用函数设置模型会等待应用程序执行。