[英]Backbone-relational cannot instantiate two RelationalModel objects
[英]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.