知っている問題と知らない問題の 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/