0

これまでの私のテンプレート:

<script id="table-row" type="x-handlebars-template">
    <tr>
        {{#each this}}
            <td>{{.}}</td>
        {{/each}}
    </tr>
</script>

そして私のレンダリングコード:

that.collection.each(function(model){
     var template = Handlebars.compile( $('#table-row').html() );
     that.table.append(template(model.toJSON()));
});

私のダミーデータコレクション:

this.collection = new Backbone.Collection([
      {name: "Tim", age: 5},
      {name: "Ben", age: 26},
      {name: "Rob", age: 55}
    ]);

<td>では、モデル内のオブジェクト キーと同じ数の を出力できるテンプレートを作成するにはどうすればよいでしょうか? すなわち。「名前」と「年齢」はありますが、「身長」を追加した場合、特にこのテンプレートを更新する必要があります。一般的なテーブル行テンプレートを作成するにはどうすればよいですか?

4

1 に答える 1

0

オブジェクト キーを反復処理するには、カスタムの Handlebars ヘルパーが必要になると思います。私はそれを使用していませんが、このようなものがうまくいくはずです。

そのリンクのコードは次のとおりです。

// HELPER: #key_value
//
// Usage: {{#key_value obj}} Key: {{key}} // Value: {{value}} {{/key_value}}
//
// Iterate over an object, setting 'key' and 'value' for each property in
// the object.
Handlebars.registerHelper("key_value", function(obj, fn) {
    var buffer = "",
        key;

    for (key in obj) {
        if (obj.hasOwnProperty(key)) {
            buffer += fn({key: key, value: obj[key]});
        }
    }

    return buffer;
});
于 2013-01-04T17:30:34.690 に答える