我正在使用backbone.marionette,并希望对传递给CompositeView的集合中的某些项使用不同的视图。这可能吗?
var vText = Backbone.Marionette.ItemView.extend({
template : "forms/form-element",
className : "control-group"
});
var vCheckbox = Backbone.Marionette.ItemView.extend({
template : "forms/form-element-checkbox",
className : "control-group"
});
var vForm = Backbone.Marionette.CompositeView.extend({
tagName : 'form',
template : 'forms/form',
className : 'crud-form form-horizontal',
itemView : // use different view for specific items based on collection modelData
})
我试过了:
itemView : function(model) {
switch(model.get('inputType')) {
case "checkbox":
return vCheckbox;
break;
default:
return vText;
break;
}
}
但是不起作用。我怎样才能做到这一点?
答案 0 :(得分:1)
目前尚不直接支持,但为您的项目需求添加不会太难
这是检索视图的itemView
设置值的函数。您可以在特定视图中覆盖它:
Backbone.Marionette.CompositeView.extend({
// ...
getItemView: function(){
return this.itemView();
}
});
这似乎也应该直接添加到木偶中。你能在github问题列表中添加一个问题吗? https://github.com/derickbailey/backbone.marionette/issues从故障单链接回此SO帖子。