2011-12-21 124 views
10

我有一個視圖myView和一個集合myCollection。當我的add模型爲myCollection時,add事件由myCollection觸發。我怎麼能myView聽那add事件?查看收藏活動

回答

17

您可以在實例化它時將集合傳遞給視圖,然後可以將視圖綁定到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 }); 
3

你必須綁定你的看法監聽的「添加」事件您的收藏:

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

    } 
}); 
new MyView({collection: myCollection}) 
11

After 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});