我有以下的功能,處理AJAX成功回調jQuery中:如何在Hogan.js
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}}成本的價值。我知道這是應該如何工作的,因爲它在鬍子手冊(http://mustache.github.com/mustache.5.html)中有描述,但我想要取而代之。
this
將指向我的產品對象,所以我可以使用this.Cost
獲得成本,而且這是一個簡單的例子,我有很多很多的屬性對象類型需要格式化,因此我需要一個通用的解決方案,以使事情DRY。
我也可以在服務器端進行計算,但我更喜歡在客戶端執行此操作,因爲我不僅在hogan中使用此數據,而且還在客戶端上進行其他計算。
是否有更多直接的,通用的和客戶端的方式來獲取Cost的值而不是未渲染的文字塊?
一些其它實施方案選擇引入支持 「過濾器」,如在{{formatMoney(成本)}}。例如見https://github.com/groue/GRMustache/blob/master/Guides/filters.md –