如何在Marionette应用程序中将ItemView更改为CompositeView?

时间:2015-03-24 13:24:58

标签: marionette

我正在尝试在Marionette应用程序中进行行内编辑。这样做的最佳方法是什么?

我的桌子是Marionette.CompositeView,这个表的行是Marionettes ItemViews。现在我正在尝试将单击的表行(ItemView)更改为CompositeView,它将包含输入并使用ajax获取的数据进行选择。这是一个好方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用CollectionView.getChildView为已编辑的项目呈现不同的视图,但如果您需要渲染大型集合,这可能会导致性能问题。

我修改了Derick Bailey的树视图示例来说明如何做到这一点 - http://jsfiddle.net/msamujlo/8g3abfg2/

// The recursive tree view
var TreeView = Backbone.Marionette.CompositeView.extend({
    template: "#node-template",
    tagName: "ul",
    getChildView: function(item){
        return item.get('isEditable')? EditorView : TreeView;       
    },
    // ... more methods
};
var EditorView = TreeView.extend({
    template: "#editor-template",
});

...