2

アプリのビューを作成するために、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 に答える 1

4

私はあなたが取ることができる2つのアプローチがあると思います:

  1. 'master'を別のテンプレートとして表現し、ビューをレンダリングするときに子で(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を追加して、最初のテンプレートの例を実際に示します。

于 2012-04-25T19:02:27.660 に答える