Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获错误:无法实例化多个主干。每个类型具有相同id的RelationalModel_Javascript_Backbone.js_Marionette_Backbone Relational - Fatal编程技术网

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
可能是一个非常奇怪的库。如果你遇到更多的陷阱,请告诉我。