我在视图中有以下监听器来更改模型:
this.listenTo(this.model, 'change', this.render);
当我更改模型时:
model.set('foo', bar);
是否可以使它不触发此特定函数调用的侦听器事件?我仍然希望事件在其他电话中触发。
答案 0 :(得分:11)
来自fine manual:
一般来说,当调用发出事件的函数(
model.set
,collection.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;
// ...
}