我有一个视图myView
和一个集合myCollection
。当我add
模型为myCollection
时,add
事件由myCollection
触发。我怎样才能myView
听取add
事件?
答案 0 :(得分:18)
您可以在实例化时将集合传递给视图,然后可以在initialize方法中将视图绑定到集合上的add事件。
这是一个代码示例
MyView = Backbone.View.extend({
initialize: function() {
this.collection.bind('add', this.onModelAdded, this);
},
...other view functions
onModelAdded: function(addedModel) {
//do something
}
}
这就是你在实例化视图时传递集合的方法
var view = new MyView({ collection: myCollection });
答案 1 :(得分:11)
之后。 0。9。9(2012年12月13日添加)建议使用listenTO。
符合这一点:
var MyView = Backbone.View.extend({
initialize: function() {
this.listenTo(this.collection, 'add', this.onModelAdd);
},
onModelAdd: function(model) {
// do something
}
});
var myCollection = new MyCollection();
var myView = new MyView({collection: myCollection});
答案 2 :(得分:3)
您必须绑定视图才能收听集合中的“添加”事件:
var MyView = Backbone.View.extend({
initialize: function(){
this.collection.bind('add', this.somethingWasAdded, this)
},
somethingWasAdded: function(){
}
});
new MyView({collection: myCollection})