4

有没有一种方法可以告诉骨干/木偶在将视图渲染到区域时不要自动添加包装容器标签?

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

<ul>
</ul>

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

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

现在我可以通过更改用于自动生成元素的标签来轻松获得相同的输出但是我不会让主干/牵线木偶自动生成标签的最大原因是因为我想在模板中保留尽可能多的 html . 如果出于某种原因我想将列表更改为表格,如果所有 HTML 都包含在模板中,我只需更改两个模板文件。另一种方式需要我更改 2 个模板文件和 2 个 javascript 文件(我必须更改的文件越少,出错的机会就越少)。我只是喜欢这种级别的关注点分离。

4

1 回答 1

0

Backbone 和 Marionette 都没有为此提供支持。但我想如果你可以通过一些调整来获得这种行为。

Backbone.View有一个被调用的方法_ensureElement来构造elfromtagNameclassNameifel没有提供。

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

可能有更好的方法选择来覆盖以实现此逻辑。我还建议您在某处提供一个标志以选择性地打开此行为,以便您可以根据需要混合和匹配,这也有助于调试。

于 2012-09-11T00:57:40.153 回答