Javascript Underline.js-组合模板

Javascript Underline.js-组合模板,javascript,jquery,underscore.js,Javascript,Jquery,Underscore.js,我正在使用下划线.js和主干为应用程序创建一些视图。这些视图都有相同的前几行,但根据它们是什么类型的子类而有所不同。有没有一种有效的方法来组合模板,这样我就可以有一个单一的“主”模板插入到所有其他模板中 代码示例: <script type="text/template" id="template-1"> {{ name }} <span>{{ type }}</span> <div> <some view specifi

我正在使用下划线.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>

{{name}}
{{type}}
{{name}}
{{type}}

我认为您可以采取两种方法:

  • 您可以将“主”表示为不同的模板,并在呈现视图时将其与子级(例如,使用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>
    
    
    模板1!
    
    我已将JSFIDLE添加到


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

  • 您可以将“主”表示为不同的模板,并在呈现视图时将其与子级(例如,使用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>
    
    
    模板1!
    
    我已将JSFIDLE添加到