Javascript 模型上的主干集合更改事件
如果将特定字段更改为特定值,是否可以侦听集合中模型的更改 我知道像“change:fieldName”这样的东西是存在的,我正在寻找像“changeTo:fieldName=true”这样的东西。这样做没有“捷径”。您必须收听正常的Javascript 模型上的主干集合更改事件,javascript,backbone.js,Javascript,Backbone.js,如果将特定字段更改为特定值,是否可以侦听集合中模型的更改 我知道像“change:fieldName”这样的东西是存在的,我正在寻找像“changeTo:fieldName=true”这样的东西。这样做没有“捷径”。您必须收听正常的change事件,并在侦听器中查看值是否已更改为您感兴趣的内容。然后,传播事件,启动一个新事件,或者做一些事情 Backbone.Collection.extend({ initialize: function() { this.on('ch
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
}
});
检查回调函数中的值有什么问题?