我在车把模板中有这个:
<span class="currencyFormatMe">{{_current_price}}</span>
循环返回的示例:出价:$ 24000
我想用逗号格式化,但我失败了。
我有这个功能在控制台中工作,但在使用把手改装到代码库时失败。
$.fn.digits = function(){
return this.each(function(){
$(this).text( $(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") );
})
}
我称之为 $(&#34; span.currencyFormatMe&#34)的数字();
同样,它全部在控制台中运行,但在适应时失败。任何指针都非常受欢迎
尝试使用registerhelper:
Handlebars.registerHelper('formatCurrency',
$.fn.digits = function(){
return this.each(function(){
$(this).text( $(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") );
})
}
);
通话:
{{formatCurrency _current_price}}
答案 0 :(得分:21)
这里有几个简单的选项。
您可以坚持使用jQuery插件并在填充Handlebars模板后应用它;像这样的东西:
<script id="t" type="text/x-handlebars">
<span class="currencyFormatMe">{{_current_price}}</span>
</script>
然后:
$.fn.digits = function(){
return this.each(function(){
$(this).text( $(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") );
})
};
var t = Handlebars.compile($('#t').html());
var h = t({
_current_price: 1000
});
$('<div>').append(h).find('.currencyFormatMe').digits();
演示:http://jsfiddle.net/ambiguous/732uN/
或者您可以将插件转换为Handlebars助手,并在模板中进行格式化。如果你想这样做,你只需要格式化传递给助手的值,而不是在助手内部弄乱$(this)
。例如:
<script id="t" type="text/x-handlebars">
{{formatCurrency _current_price}}
</script>
然后:
Handlebars.registerHelper('formatCurrency', function(value) {
return value.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
});
var t = Handlebars.compile($('#t').html());
var h = t({
_current_price: 1000
});