![](/img/trans.png)
[英]How can I attach event handler for a collection view in Backbone.js when one of the models is changed?
[英]How can I tell which model changed when listening to the change event of a collection in backbone.js
我在骨干中創建了兩個集合,我想將第一個集合綁定到第二個集合中的模型更改事件。
var ProjectUserList = Backbone.Collection.extend({
model: app.projectUser,
url: config.base + 'api/project/project_users'
});
//instantiate
app.projectUserList = new ProjectUserList();
第一個帶有第一個綁定更改事件的集合:
var FileList = Backbone.Collection.extend({
initialize: function () {
app.projectUserList.on('change', this.updateShare);
},
updateShare: function () {
console.log(this);
}
});
我如何知道集合中哪個模型已更改?
從精細手冊 :
活動目錄
這是Backbone.js可以觸發的所有內置事件的列表。 您也可以根據需要自由地在模型和視圖上觸發自己的事件。
- [...]
- “更改” (模型,選項) - 當模型的屬性發生變化時。
因此, "change"
事件處理程序的第一個參數將是最初觸發事件的模型。
例如,給定一個這樣的簡單設置:
var M = Backbone.Model.extend({});
var C = Backbone.Collection.extend({
model: M
});
var c = new C([
{ id: 1, s: 'where' },
{ id: 2, s: 'is' },
{ id: 3, s: 'pancakes' },
{ id: 4, s: 'house' }
]);
c.on('change', function(model, options) { /*...*/ });
c.at(3).set('s', 'house?');
"change"
處理程序的model
參數將是包裝{ id: 4, ... }
的model
參數。
我應該看起來有點難。
上面示例中updateShare函數上下文中的對象'this'包含一個數組'models',其中包含集合中的所有模型,但觸發change事件的對象具有'_changing:true'屬性。
但是接受的答案是我在尋找並且在文檔中找不到的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.