У меня есть вид myView
и коллекция myCollection
. Когда я add
модель до myCollection
, событие add
запускается myCollection
. Как я могу myView
прослушать это событие add
?
Иметь просмотр прослушать событие коллекции
Ответ 1
Вы можете передать коллекцию в представление при ее создании, а затем вы можете привязать представление к событию добавления в коллекции в методе инициализации.
Здесь пример кода
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 });
Ответ 2
После версии. 0.9.9 (добавлено 13 декабря 2012 г.) рекомендуется использовать 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});
Ответ 3
Вам нужно привязать ваше представление, чтобы прослушать событие "добавить" вашей коллекции:
var MyView = Backbone.View.extend({
initialize: function(){
this.collection.bind('add', this.somethingWasAdded, this)
},
somethingWasAdded: function(){
}
});
new MyView({collection: myCollection})