编程语言
首页 > 编程语言> > javascript – Backbone Marionette不同的复合视图

javascript – Backbone Marionette不同的复合视图

作者:互联网

是否有可能在木偶中有一个复合视图,里面有不同的项目视图?例如:

var myCompositeView = Backbone.Marionette.CompositeView.extend({
    template: Handlebars.compile(myTemplate),
    itemView: myView, // I want different views, not just myView
    initialize: function(){
        this.collection = this.model.views;
    },
    appendHtml: function(collectionView, itemView){
        collectionView.$('.container').append(itemView.el);
    }

});

基本上,根据集合中的模型,我想创建一个特定的视图.

解决方法:

您可以使用getItemView方法完成此操作:

var VTbody = Backbone.Marionette.CompositeView.extend({
    template: "#emptyTemplate",
    tagName:"tbody",
    //itemView:VTr,  /*No need to specify item View */
    getItemView: function(item){
      if(item.get("type")=="details") {
            return  VTrDetails
        } else  {
            return VTr
        }
    }
});

这里的项目表示集合中的模型.
希望这可以帮助.

标签:javascript,backbone-js,marionette
来源: https://codeday.me/bug/20190825/1719651.html