如果特定字段更改为特定值,是否可以侦听集合中模型的更改?
我知道存在类似'change:fieldName'的东西,我正在寻找类似'changeTo:fieldName = true'的东西
如果特定字段更改为特定值,是否可以侦听集合中模型的更改?
我知道存在类似'change:fieldName'的东西,我正在寻找类似'changeTo:fieldName = true'的东西
没有这样做的“捷径”方式。您必须监听正常change
事件,并在您的监听器中查看值是否已更改为您感兴趣的内容。然后,传播事件,触发一个新事件,或者做一些事情。
Backbone.Collection.extend({
initialize: function() {
this.on('change:property', this.onChange);
},
onChange: function(e) {
// sorry for pseudo-code, can't remember syntax by heart, will edit
if (e.newValue == true)
myLogic();
}
}
您无法侦听显式值,因为这在一般情况下效果不佳,但您可以轻松绑定到通用处理程序并基于此运行您的代码。
var MyCollection = Backbone.Collection.extend({
initialize: function(models, options){
this.on('change:myProperty', this.changeMyProperty_, this);
},
changeMyProperty_: function(model, value){
if (value) this.myPropertyTrue_(model);
},
myPropertyTrue_: function(model){
// Do your logic
}
});