知っている問題と知らない問題の 2 つがあります。
最初の問題は、その_.templateSettings
うちの 1 つだけを交換したいときに 3 つすべてを交換していることです。あなたはこれを求めている:
_.templateSettings.interpolate = /\{\{(.+?)\}\}/g;
evaluate
これにより、とescape
の部分はそのままになり_.templateSettings
ます。あなたがしていることは次と同じです:
_.templateSettings = {
interpolate : /\{\{(.+?)\}\}/g,
evaluate : undefined,
escape : undefined
};
だからあなたはevaluate
まったくなしで終わっています。ところで、source
コンパイルされたテンプレート関数のプロパティを見て、テンプレートがコンパイルされた JavaScript を確認できます。JavaScript は目にはそれほど簡単ではありませんが、この種の問題を解決するのに役立ちます。
あなたが知らない問題は、for...in
ループは配列内の値ではなく、オブジェクトのプロパティを反復処理するためのものだということです。これは、ループ内の文字列、、... になることを意味し、それはあなたが望むものではありませんregistration
。が配列の場合、テンプレートに次のようなものが必要です。'0'
'1'
REGISTRATION_NUMBERS
<% for(var i = 0; i < REGISTRATION_NUMBERS.length; ++i) { %>
<% var registration = REGISTRATION_NUMBERS[i]; %>
<tr>
<td>{{registration.TYPE}}</td>
<td>{{registration.VALUE}}</td>
</tr>
<% } %>
または、とにかくアンダースコアがあるので、次を使用できます_.each
。
<% _(REGISTRATION_NUMBERS).each(function(r) { %>
<tr>
<td>{{r.TYPE}}</td>
<td>{{r.VALUE}}</td>
</tr>
<% }) %>
デモ: http://jsfiddle.net/ambiguous/jfckA/