簡體   English   中英

未捕獲錯誤:無法實例化多個Backbone.RelationalModel,每個類型具有相同的id

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

我在Backbone Marionette應用程序中使用Backbone Relational。 如果我遵循此工作流程:直接導航到顯示頁面>單擊“主頁”(或索引頁面)鏈接>單擊瀏覽器的后退按鈕返回顯示頁面我收到錯誤導致頁面無法加載:

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

似乎問題是該模型已經在內存中,因此Backbone Relational不想重新獲取它。 它有一個內置的幫助器來幫助解決這個問題 - findOrCreate 我遵循了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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM