我的模型定义如下。
var A = Backbone.Model.extends({
initialize: function(){
this.on('change:users.name',this.onUserNameChanged)
},
onUserNameChanged: function(){ alert('name changed')
});
var a = new A ({
id:1,
name:'test',
users:[
{
id:2,
name:'u1'
},
{
id:3,
name:'u4'
}
]
})
我希望在模型定义中对每个用户名更改添加事件。 我不知道这样做。这对我来说似乎很难。
答案 0 :(得分:0)
似乎您无法通过操纵Backbone模型数组成员来获取更改事件,如下所述:
backbone-js-set-model-array-property
您最好的选择是设置整个数组并收听change:users
事件甚至更好 - 提出一个不同的模型,该模型具有Backbone集合,供用户在操作时获取事件:
var A = Backbone.Model.extend({
initialize: function (options) {
_.extend(this, options);
}
});
var Users = Backbone.Collection.extend({
initialize: function () {
this.on('change:name', function () {
alert('name changed');
});
}
});
var a = new A({
id: 1,
name: 'test',
users: new Users([{
id: 2,
name: 'u1'
}, {
id: 3,
name: 'u4'
}])
});
a.users.get('2').set('name', 'u2');