如何在 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",
});
...
我正在尝试在 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",
});
...