2012-04-25 72 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