对于以下代码,add
视图中绑定的事件会触发两次(如果一次向集合中添加更多元素,则会触发更多)。
http://jsfiddle.net/radu/GnG66/
App = window.App || {};
var Model = Backbone.Model.extend();
var Collection = Backbone.Collection.extend();
App.collection = new Collection({ model: Model });
var View = Backbone.View.extend({
events: {
'click': function() {
console.log('click');
App.collection.add([{
foo: 'foo'
}, {
bar: 'bar'
}]);
}
},
initialize: function() {
App.collection.on('add', function() {
console.log('Something has been added to the collection')
}, this);
}
});
$(function() {
App.view = new View({ el: '#test' });
});
如果您不向集合中添加数组,而是将几个对象作为参数传递(基本上只是删除方括号),则该事件只会触发一次。
这是设计使然,有没有办法在不{ silent : true }
作为选项传递的情况下覆盖此行为?