有视图听收集事件

时间:2011-12-21 20:33:51

标签: backbone.js

我有一个视图myView和一个集合myCollection。当我add模型为myCollection时,add事件由myCollection触发。我怎样才能myView听取add事件?

3 个答案:

答案 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})