私は Handlebars.js を使用していますが、解決できない問題に行き詰まりました。
テンプレート内の配列を反復処理したいのですが、問題は、反復子に使用している式が配列ではなくゲッターであることです。
問題を示すコードは次のとおりです。
HTML:
<script id="template" type="text/x-handlebars">
Accessing directly: {{array}} <br/>
Accessing by getter: {{getArray}} <br/>
<br/>
Looping directly:
<ul>
{{#each array}}
<li>{{this}}</li>
{{/each}}
</ul>
<br/>
Looping by getter:
<ul>
{{#each getArray}}
<li>{{this}}</li>
{{/each}}
</ul>
</script>
<p id="content"></p>
JS:
var template = Handlebars.compile($("#template").html());
var element = {
array: [0, 1, 2],
getArray: function() {
return this.array;
}
};
$("#content").html(template(element));
問題はeach
、ゲッターを使用する が何もしないことです。これは、このjsFiddleで確認できます。
ゲッターを使用してこれを実行するクリーンな方法はありますか、またはヘルパーまたは補助関数のようなものを作成する必要がありますか?
ありがとう!