2014-09-19 36 views
0

目前我在模板中插入id attrbute以獲取用戶點擊的模型。確定點擊模型?

ArticlesView = Backbone.Marionette.CollectionView.extend({ 
    tagName: "ul", 
    childView: ArticleView, 

    ui: { 
     "add": ".btnAdd", 
    }, 
    events: { 
     "click @ui.add" : "addToSelection", 
    }, 
    addToSelection: function(event){ 
     //Get the current item's id. 
     var clicked = $(event.currentTarget); 
     var article = articles.get(clicked.attr("id")); 
     selecteds.add([article.clone()]); 
    }, 
}); 

我的問題是:有沒有其他方式來獲得點擊模型,而不使用模板中的ID屬性?

回答

1

是的!你的每個childView都應該有一個model屬性:因此,你應該在視圖類定義中添加你的每個模型方法,這裏是ArticleView

這可能是這個樣子:

var ArticlesView = Backbone.Marionette.CollectionView.extend({ 
    tagName: "ul", 
    childView: ArticleView 
}); 


var ArticleView = Backbone.Marionette.ItemView.extend({ 
    tagName: "li", 
    ui: { 
     "add": ".btnAdd", 
    }, 
    events: { 
     "click @ui.add" : "addToSelection", 
    }, 
    addToSelection: function(){ 
     selecteds.add(this.model); 
    } 
});