是否可以在 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
}
}
});
这里的 item 是指集合中的模型。
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)