3

各ItemViewのレンダリングにテンプレートを使用する必要があります。

var ItemView = Backbone.View.extend({
    className: 'item',
    template: _.template($('#itemTemplate').html()),

    initialize: function () {

    }
});

したがって、最初にhtmlテンプレートを定義する必要があります。

<script id="itemTemplate" type="text/template">
  <img src="<%= photo %>" alt="<%= name %>" />
  <h1><%= name %><span><%= type %></span></h1>
  <div><%= address %></div>
  <dl>
    <dt>Tel:</dt><dd><%= tel %></dd>
    <dt>Email:</dt><dd><a href="mailto:<%= email %>"><%= email %></a></dd>
  </dl>

しかし、私はNodejs Jadeテンプレートエンジンを使用しており、その中でどのように定義するのかわかりません。助けてください。

4

1 に答える 1

10

これは簡単ですが、1つの落とし穴があります。Jadeが属性コンテンツをエスケープしたくないので、foo!='<%= bar &%>'の代わりにを使用してfoo='<%= bar &%>'ください。

どうぞ:

script#itemTemplate(type='text/template')
  img(src!='<%= photo %>', alt!='<%= name %>')
  h1 <%= name %>
    span <%= type %>
  div <%= address %>
  dl
    dt Tel:
    dd <%= tel %>
    dt Email:
    dd
      a(href!='mailto:<%= email %>') <%= email %>

テスト済みなので、すぐに使用できます:)

于 2012-10-07T10:19:24.393 に答える