我正在使用underscore.js和backbone来为应用创建一些视图。视图都具有相同的前几行,但是根据它们的子类类型而不同。有没有一种有效的方法来组合模板,这样我就可以将一个单一的“主”模板插入到所有其他模板中?
代码示例:
<script type="text/template" id="template-1">
{{ name }}
<span>{{ type }}</span>
<div>
<some view specific html>
</div>
</script>
<script type="text/template" id="template-2">
{{ name }}
<span>{{ type }}</span>
<div>
<some view specific html>
</div>
</script>
答案 0 :(得分:4)
我认为你可以采取两种方法:
您可以将'master'表示为不同的模板,并在渲染视图时将其与子组合(例如使用jQuery.append)。
或者,下划线模板可以呈现任意javascript,因此我认为没有什么能阻止您在模板中呈现模板,例如:
<%= data.name %>
<span><%= data.type %></span>
<div>
<%= _.template(data.child, data, { variable: 'data' }) %>
</div>
或者相反:
<%= _.template(data.common, data) %>
<div>
Template 1!
</div>
我已经向demonstrate the first template example in action添加了一个jsFiddle。