Reputation: 2185
I use backbone version 1.0.0 & underscore js. From my collection , i remove models that match some criteria.
myCollection.remove(myCollection.where({filterId: "1"}));
This will remove all the models inside my collection having filterId attribute == "1".
Now this is causing multiple change events for "remove" being fired when I have more than 1 model matching the criteria.
I want it to be fired only once when all matching models are removed. Please advice.
Upvotes: 0
Views: 38
Reputation: 5402
It is not possible to limit the remove event only once as Backbone triggers every time when a model is removed from a collection.
Instead you can filter the collection and listen for reset event.
var filtered = myCollection.filter(function(model) {
return model.get("filterId") != 1;
});
myCollection.reset(filtered);
Upvotes: 1