rov*_*red 2 javascript events model backbone.js
我在视图中有以下监听器来更改模型:
this.listenTo(this.model, 'change', this.render);
Run Code Online (Sandbox Code Playgroud)
当我改变模型时:
model.set('foo', bar);
Run Code Online (Sandbox Code Playgroud)
是否有可能使它不触发此特定函数调用的侦听器事件?我仍然希望事件在其他调用时触发.
mu *_*ort 11
从精细手册:
一般来说,称发射事件的函数时(
model.set,collection.add,等...),如果你想防止被触发的情况下,你可以通过{silent: true}作为一个选项.请注意,这很少,甚至从来都不是一个好主意.通过选项中的特定标志来查看事件回调以及选择忽略,通常会更好地解决问题.
因此,如果您不希望该特定set调用触发更改事件,则:
model.set('foo', bar, { silent: true });
Run Code Online (Sandbox Code Playgroud)
或者render使用自定义选项将一些信息隧道化:
model.set('foot', bar, { ignore_this: true });
Run Code Online (Sandbox Code Playgroud)
并调整render:
render: function(options) {
if(options && options.ignore_this)
return;
// ...
}
Run Code Online (Sandbox Code Playgroud)