有视图听收集事件

Ran*_*lue 10 backbone.js

我有一个视图myView和一个集合myCollection.当我add是模特时myCollection,add事件是由触发的myCollection.我怎么能myView听到那个add事件?

Pau*_*aul 18

您可以在实例化时将集合传递给视图,然后可以在initialize方法中将视图绑定到集合上的add事件.

这是一个代码示例

MyView = Backbone.View.extend({
  initialize: function() {
    this.collection.bind('add', this.onModelAdded, this);
  },

  ...other view functions

  onModelAdded: function(addedModel) {
    //do something
  }
}
Run Code Online (Sandbox Code Playgroud)

这是您在实例化视图时传递集合的方式

var view = new MyView({ collection: myCollection });
Run Code Online (Sandbox Code Playgroud)


Hel*_*org 11

在ver之后.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});
Run Code Online (Sandbox Code Playgroud)