2012-04-25 89 views
2

我正在使用underscore.js和主干为应用创建一些视图。这些视图都具有相同的第一行几行,但随后根据它们的子类型而有所不同。有没有一种有效的方法来组合模板,以便我可以有一个单独的“主”模板插入到所有其他模板中?underscore.js - 合并模板

代码示例:

<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> 

回答

4

我认为有两种方法,你可以采取:

  1. 你可以代表你的“主人”为不同的模板,并与孩子组成它(如与jQuery.append)当您呈现您的视图。

  2. 或者下划线模板可以使任意JavaScript,因此我不认为有什么从模板中渲染的模板阻止你,是这样的:

    <%= data.name %> 
    <span><%= data.type %></span> 
    <div> 
        <%= _.template(data.child, data, { variable: 'data' }) %> 
    </div>  
    

    或者周围的其他方法:

    <%= _.template(data.common, data) %> 
    <div> 
        Template 1! 
    </div> 
    

    我已将jsFiddle添加到demonstrate the first template example in action