我一直在使用骨干关系(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
。有没有解决这个问题的方法?
答案 0 :(得分:2)
使用骨干关系,您可以从关系存储中获取或创建对象。使用它来创建关系对象:
this.model = someModel.findOrCreate({id: 123})
有了它,它将创建新对象或从关系存储中获取现有对象。
答案 1 :(得分:1)
我遇到了类似的问题,通过切换到Backbone-associations修复了它。
https://github.com/dhruvaray/backbone-associations
界面几乎完全相同,只有一些细微差别,因此移植应该非常简单。
答案 2 :(得分:0)
我遇到了类似的问题,我需要用函数初始化模型:
model: ->
return new Project.Models.ModelName()
当你需要_tree时。在application.js中,模型文件的加载时间晚于集合文件(按字母顺序排列)。使用函数设置模型会等待应用程序执行。