儘管在StackOverflow和其他地方對此同一主題提出了許多問題/回答,但我仍然不明白如何繼續。我想在我的視圖中更改我的集合以觸發渲染功能。 View有一個集合,而不是一個模型 - 所以我看到的model.bind的很多例子都不適用。顯然,collection.bind不是合法的綁定。這是我的視圖代碼。我應該在initialize中添加什麼,以便當orderedPrefs(collection)發生更改時,視圖的render函數被調用?將綁定集合更改爲查看呈現
headerView = Backbone.View.extend({
el: $('#' + targetdiv),
collection: orderedPrefs,
events: {
"click .scheduleheader": "clicked" // dependency here on scheduler.js class naming .scheduleheader
},
initialize: function() {
_.bindAll(this, "render");
},
render: function() {
alert('render!!');
},
..... .....
但是,當我的集合已經加載並且我對基礎模型進行了修改時 - 看起來好像我無法在這種情況下對更改進行綁定?看起來好像我需要綁定到底層模型來捕捉更改(如在,編輯)? – goldfinger
@goldfinger不,您可以使用「更改」事件通知集合中任何模型的更改。從這裏的文檔開始 - 措辭有點模棱兩可,所以我不能100%確定:*您可以綁定「更改」事件,以便在集合中的任何模型被修改時通知* – McGarnagle
還有一些錯誤我簡直無法理解。 this.collection.bind(「change」,this.render)在JavaScript中給出'對象不支持屬性或方法綁定'的錯誤,這就是爲什麼在OP中我提到collection.bind似乎不是一個合法的綁定。我不知道我的結局有什麼問題...... – goldfinger