Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 模型上的主干集合更改事件_Javascript_Backbone.js - Fatal编程技术网

Javascript 模型上的主干集合更改事件

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

如果将特定字段更改为特定值,是否可以侦听集合中模型的更改

我知道像“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
  }
});

检查回调函数中的值有什么问题?