2012-10-16 49 views
8

指定我知道這個錯誤已經拿出了幾次,但我仍然不知道如何使這項工作適當地..未捕獲的錯誤:「URL」屬性或功能必須爲的CollectionView

我魔術從這裏開始:

var list_edit_member_view = new app.views.ListMemberEdit({ 
     el: $("#enterprise_member_list_edit_container"), 
     list_ids: list_ids 
    }); 
    list_edit_member_view.render(); 

而這個加載這個視圖(ListMemberEdit.js),其中有這樣的渲染():

this.list_edit_member_view = new app.views.CollectionView({ 
    el: $("#enterprise_member_list_edit_container"), 
    collection: app.peers, 
    list_item: app.views.ListMemberEditSelection, 
    list_item_options: {list_ids: this.options.list_ids} 
}); 

它加載呈現一個的CollectionView鑑於其list_item_options爲模型的觀點。它是這個文件(ListMemberEditSelection.js)內,當我執行this.destroy,它將返回:

Uncaught Error: A "url" property or function must be specified 

所以這讓我覺得,模型或模型的網址沒有被定義..我只是不知道該把這個放在哪裏,因爲它的作用非常類似於我做的大致相同的事情。

任何想法?我對這種含糊不清的道歉。讓我知道如果有什麼你想看看!

我很好奇它是否可能看到其中此URL屬性將寫入對象模型或集合本身。

回答

16

這是因爲destroy()函數會調用Backbone.sync來更新服務器,不僅僅是您的模型在前端。 http://backbonejs.org/#Model-destroy

所以,如果你使用REST同步你的數據,你需要設置模型中的一個url屬性,因此骨幹知道從哪裏發出請求:

Backbone.Model.extend({ 
    url: "http://myapi.com/" 
}) 

爲了讓更多的靈活性,你也可以設置一個urlRoot:http://backbonejs.org/#Model-urlRoot

+1

嗯..它似乎在其他地方沒有這個'url'在模型中像你描述的那樣實例化。在工作方面,如果我做'$ .bar.model.collection.url',我可以找到一個寫出來的URL ..所以問題是...集合URL的實例化在哪裏,如果它不像你這樣的模型建議.. – Trip

2

我的確收到類似的錯誤 試試這個:我只是做一個假設模型可能是什麼樣子

window.MyModel = Backbone.Model.extend({ 
    url: function(){ 
    return this.instanceUrl; 
    }, 
    initialize: function(props){ 
    this.instanceUrl = props.url; 
    } 
} 

請看看這個問題,我已經公佈自己的詳細信息:https://stackoverflow.com/a/11700275/405117

我提供這個參考作爲答案在這裏幫助我更好地瞭解

希望這有助於!

9

我有一個類似的問題,我從我的模型默認值中刪除"id":""並解決了問題。

+2

哇......爲我工作.... :) –

相關問題