我有一个应用程序需要显示指标。应用程序需要为每个指标显示一个单独的垂直部分。当我开始时,只有5个指标,所以我天真地创建了一个包含5个区域的模板,每个指标需要显示一个。现在,需要添加新的度量标准,并且我希望避免在模板中添加“硬编码”区域div。我想重构这个,并根据一些配置数据在启动时动态创建所需的区域。需要澄清在Marionette中动态添加区域
所以我一直在寻找最新的木偶释放和问题“Dynamically add regions to Marionette layout”,德里克·贝利提到,木偶V1.0通过addRegion()支持布局活力的地区,如:
var layout = new MyLayout();
layout.render()
layout.addRegion("someRegion", "#some-element");
layout.someRegion.show(new MyView());
我在我的代码中尝试过(使用Marionette 1.0.2),但我没有得到它的工作。我的模板中没有id =“some-element”的div,我怀疑这可能是原因。我希望Marionette能够自己创造这个div。
也许我对动态添加区域的预期是错误的。所以我的第一个问题是:在动态添加区域到布局时,是否必须在布局中存在addRegion()函数中传递的元素ID?
如果是这样,那么我回到了在模板中“烧”这些区域以便自己附着的问题。我的后续问题是:以数据驱动的方式做这件事的最佳方式是什么?是否编写我自己的render()函数,以便正确的div集创建?或者也许为我的Layout提供一个模型对象,该对象将包含模板可以迭代以创建必要的div的数据?如果我们事先不知道实际需要多少区域,我们如何将区域动态添加到布局对象?