jQuery で AJAX 成功コールバックを処理する次の関数があります。
function success(data) {
var templateData = {
items: data,
formatMoney: function () {
return function (value) {
return Globalization.format(value, 'N');
};
}
};
// fill reports table
var filledTable = tableTemplate.render(templateData);
$tableContainer.html(filledTable);
}
私のテンプレートは次のようになります。
{#Items}}
<tr>
<td>{{ProductId}}</td>
<td>{{#formatMoney}}{{Cost}}{{/formatMoney}}</td>
</tr>
{{/Items}}
問題は、Cost の値の代わりに {{Cost}} が得られることです。口ひげのマニュアル (http://mustache.github.com/mustache.5.html) で説明されているように、これがどのように機能するかはわかっていますが、代わりに値を取得したいと思います。
this
私の製品オブジェクトを指すので、使用してコストを取得できますthis.Cost
が、これは単純なケースであり、書式設定が必要な多くのプロパティを持つ多くのオブジェクトタイプがあるため、物事をDRYに保つための一般的なソリューションが必要です。
サーバー側でこれを計算することもできますが、このデータをホーガンで使用するだけでなく、クライアント側の他の計算にも使用するため、クライアント側でこれを行うことを好みます。
レンダリングされていないリテラル ブロックの代わりに、Cost の値を取得するためのより簡単で一般的なクライアント側の方法はありますか?