backbone.js: Prevent listener event from firing when model changes
backbone.js, events, javascript, model
Solution
From the fine manual:
Generally speaking, when calling a function that emits an event (`model.set`, `collection.add`, and so on...), if you'd like to prevent the event from being triggered, you may pass `{silent: true}` as an option. Note that this is rarely, perhaps even never, a good idea. Passing through a specific flag in the options for your event callback to look at, and choose to ignore, will usually work out better.
So if you don't want that specific `set` call to trigger a change event then:
model.set('foo', bar, { silent: true });
Or tunnel some information to `render` using a custom option:
model.set('foot', bar, { ignore_this: true });
and adjust `render`:
render: function(options) {
if(options && options.ignore_this)
return;
// ...
}
Problem
I have the following listener in the view for when a model is changed: ``` this.listenTo(this.model, 'change', this.render); ``` When I change the model : ``` model.set('foo', bar); ``` Is it possible to make it not trigger the listener event for this specific function call? I still want the event to trigger at other calls.