骨干牵线木偶视图和包装容器

时间:2012-09-10 18:15:55

标签: backbone.js marionette

有什么方法可以告诉骨干/牵线木偶在向区域渲染视图时不自动添加包装容器标签?

例如,假设我要显示项目列表。我想要这样做的方法是让一个复合视图看起来像这样:

<ul>
</ul>

然后是一个看起来像这样的项目视图:

<li><%= title %></li>

现在我可以通过更改用于自动生成元素的标记来轻松获得相同的输出但是我不希望由backbone / marionette自动生成标记的最大原因是因为我想保留尽可能多的html模板尽可能。如果出于某种原因我想将列表更改为表,如果所有HTML都包含在模板中,我只需要更改两个模板文件。另一种方式需要我更改2个模板文件和2个javascript文件(更少的文件我必须更改以进行更改,错误的机会更少)。我只是喜欢这种程度的分离。

1 个答案:

答案 0 :(得分:0)

Backbone和Marionette都没有内置支持。但我想如果你能通过一些调整来获得这种行为。

Backbone.View有一个名为_ensureElement的方法,如果未提供el,则会从tagNameclassName构建el

您可以覆盖_ensureElement以先渲染模板,然后使用它的第一个标记名称作为视图的tagName。您还需要覆盖Marionette.Renderer.render以剥离模板的外部标记。

可能有更好的方法可以覆盖以实现此逻辑。我还建议你在某个地方提供一个标志来有选择地改变这种行为,这样你就可以根据需要进行混合和匹配,这也有助于调试。