backbone.js:防止模型更改时触发侦听器事件

时间:2014-05-31 00:44:57

标签: javascript events backbone.js model

我在视图中有以下监听器来更改模型:

this.listenTo(this.model, 'change', this.render);

当我更改模型时:

model.set('foo', bar);

是否可以使它不触发此特定函数调用的侦听器事件?我仍然希望事件在其他电话中触发。

1 个答案:

答案 0 :(得分:11)

来自fine manual

  

一般来说,当调用发出事件的函数(model.setcollection.add等等)时,如果您想阻止事件被触发,您可以传递{silent: true}作为选项。请注意,这是很少,甚至从来都不是一个好主意。通过选项中的特定标志来查看事件回调,并选择忽略,通常会更好。

因此,如果您不希望该特定set调用触发更改事件,那么:

model.set('foo', bar, { silent: true });

使用自定义选项将一些信息传送到render

model.set('foot', bar, { ignore_this: true });

并调整render

render: function(options) {
    if(options && options.ignore_this)
        return;
    // ...
}
相关问题