backbone.js:防止在模型改变时触发监听器事件
backbone.js: Prevent listener event from firing when model changes
当模型被更改时,我在视图中有以下侦听器:
this.listenTo(this.model, 'change', this.render);
当我改变模型时:
model.set('foo', bar);
是否有可能使其不触发此特定函数调用的侦听器事件?我仍然希望事件在其他调用时触发。
From the 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;
// ...
}
相关文章:
- 在下拉式javascript事件监听器中选择时触发事件
- 如何在音频元素上使用React媒体合成事件监听器
- Javascript事件监听器让我很困惑
- javascript的事件监听器将下拉列表转换为输入按钮
- 组合类和事件监听器:`this`关键字
- 将事件监听器添加到画布时出错
- 如何通过javascript触发事件监听器
- 通过事件监听器在circle的文本匹配id上修改circle元素
- 动态添加javascript事件监听器,做一些无法解释的事情
- 事件处理程序&事件监听器彼此独立
- 为什么我在谷歌闭包中编写的事件监听器不起作用
- 如何在JS中使用事件监听器
- 为什么jQuery选择事件监听器会多次触发
- 为什么不'我的手机上没有设备就绪的事件监听器
- 何时在 Cocos2d-js 3.2 中注销事件监听器和定时回调
- javaScript-我们如何将一个事件监听器设置为另一个事件监听器的从属
- 按键监听器事件在firefox中不起作用
- 谷歌地图监听器事件的行为类似于点击,即使它是鼠标悬停
- 事件处理程序和监听器&事件冒泡和事件捕获
- backbone.js:防止在模型改变时触发监听器事件