确定点击的模型?

时间:2014-09-19 22:30:38

标签: marionette

目前我在模板中插入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 个答案:

答案 0 :(得分: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); 
    }
});