jah*_*hie 11 javascript jquery string-formatting handlebars.js
我在车把模板中有这个:
<span class="currencyFormatMe">{{_current_price}}</span>
Run Code Online (Sandbox Code Playgroud)
循环返回的示例:出价:$ 24000
我想用逗号来格式化,但我失败了.
我有这个功能在控制台中工作,但在使用把手适应代码库时失败.
$.fn.digits = function(){
return this.each(function(){
$(this).text( $(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") );
})
}
Run Code Online (Sandbox Code Playgroud)
我把它称为$("span.currencyFormatMe").digits();
它再一次在控制台中工作,但在适应时失败.任何指针都非常受欢迎
尝试使用registerhelper:
Handlebars.registerHelper('formatCurrency',
$.fn.digits = function(){
return this.each(function(){
$(this).text( $(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") );
})
}
);
Run Code Online (Sandbox Code Playgroud)
呼叫:
{{formatCurrency _current_price}}
Run Code Online (Sandbox Code Playgroud)
mu *_*ort 21
这里有几个简单的选项.
您可以坚持使用jQuery插件并在填充Handlebars模板后应用它; 这样的事情:
<script id="t" type="text/x-handlebars">
<span class="currencyFormatMe">{{_current_price}}</span>
</script>
Run Code Online (Sandbox Code Playgroud)
然后:
$.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();
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/ambiguous/732uN/
或者,您可以将插件转换为Handlebars助手,并在模板中进行格式化.如果你想这样做,你只需要格式化传递给助手的值,而不是$(this)
在助手内部搞乱.例如:
<script id="t" type="text/x-handlebars">
{{formatCurrency _current_price}}
</script>
Run Code Online (Sandbox Code Playgroud)
然后:
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
});
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/ambiguous/5b6vh/
归档时间: |
|
查看次数: |
16424 次 |
最近记录: |