我的目标 是创建一个可以接收可变数量的视图并基于它们的自定义布局(流布局),它根据需要创建区域,并在这些区域内显示传入的视图.可以安排视图垂直或水平.
要求
布局有一个模板,其中最初未定义区域.它只包含一个包装器(data-role="region-wrapper"),其中将添加添加的区域.
我的方法.
1 - 延伸Marionette.Layout(显然)
2 - 像以下一样Ovveride the construtor
constructor: function(options) {
// call super here...
this.viewList= options.viewList || [];
this._defineRegions(); // see 3
}
Run Code Online (Sandbox Code Playgroud)
3 - 动态定义区域
_defineRegions: function() {
_.each(this.viewList, function(view, index) {
var name = 'flowRegion_' + index;
var definition = { selector: "[data-region='flow-region-" + index + "']" };
this.addRegion(name, definition);
}, this);
},
Run Code Online (Sandbox Code Playgroud)
4 - 在同一布局中的onRender方法中渲染区域和视图
onRender: function() {
_.each(this.viewList, function(view, index) {
// if the view has …Run Code Online (Sandbox Code Playgroud)