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

How can I change ItemView to CompositeView in Marionette application?

我正在尝试在 Marionette 应用程序中进行行内编辑。执行此操作的最佳方法是什么?

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

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

我修改了 Derick Bailey 的 Tree View 示例来展示如何做到这一点 - 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",
});

...