Javascript 未捕获错误:无法实例化多个主干。每个类型具有相同id的RelationalModel
我在主干木偶应用程序中使用主干关系。如果我遵循此工作流: 直接导航到显示页面>单击“主页”(或索引页面)链接>单击浏览器的“上一步”按钮返回显示页面我收到一个导致页面无法加载的错误:Javascript 未捕获错误:无法实例化多个主干。每个类型具有相同id的RelationalModel,javascript,backbone.js,marionette,backbone-relational,Javascript,Backbone.js,Marionette,Backbone Relational,我在主干木偶应用程序中使用主干关系。如果我遵循此工作流: 直接导航到显示页面>单击“主页”(或索引页面)链接>单击浏览器的“上一步”按钮返回显示页面我收到一个导致页面无法加载的错误: Uncaught Error: Cannot instantiate more than one Backbone.RelationalModel with the same id per type! 问题似乎是模型已经在内存中,所以主干关系不想重新获取它。它有一个内置的帮助器来帮助解决这个问题。我学习了bac
Uncaught Error: Cannot instantiate more than one Backbone.RelationalModel with the same id per type!
问题似乎是模型已经在内存中,所以主干关系不想重新获取它。它有一个内置的帮助器来帮助解决这个问题。我学习了backbonerails.com教程,该教程为您设置了一个漂亮的“when:fetched”函数,基本上可以在从服务器获取模型后运行您想要运行的任何代码
我一直在尝试将其调整为使用findOrCreate
函数,但到目前为止都没有成功。你知道我应该如何更新它以使用findOrCreate
调用而不是fetch
调用吗
@TheoremReach.module "Utilities", (Utilities, App, Backbone, Marionette, $, _) ->
App.commands.setHandler "when:fetched", (entities, callback) ->
xhrs = _.chain([entities]).flatten().pluck("_fetch").value()
$.when(xhrs...).done ->
callback()
或者,是否有方法访问已经存在并抛出此错误的“内存中的模型”?我一直在搜索,但没能找出它的存储位置/如何访问它
提前谢谢 只需使用
findOrCreate
实例化模型,然后获取它
var model = MyModel.findOrCreate({id : modelId});
model.fetch();
显然,我的问题是,我试图在模型实例本身而不是类上调用findOrCreate。一旦我适应了,这就像一种魅力是的,很高兴我能帮上忙。一般来说,
BackbonRelational
可能是一个非常奇怪的库。如果你遇到更多的陷阱,请告诉我。