Javascript 如何在mustache中将十进制格式设置为货币格式?
我使用mustache呈现通过Ajax接收的json数据 我要以货币格式呈现此数字:Javascript 如何在mustache中将十进制格式设置为货币格式?,javascript,mustache,Javascript,Mustache,我使用mustache呈现通过Ajax接收的json数据 我要以货币格式呈现此数字: {{price}} e、 g:12300 如何将其渲染为: “12300” 使用mustache模板引擎?在将模型传递到mustache(或任何模板引擎)之前,您应该这样做。除了能够执行字符串操作D外,问题在于并非所有国家/地区的数字格式都相同,因此显示表示可能不同,不应在模板中硬编码。Mustache非常简约,不提供任何支持 您必须提供格式化数据或返回格式化数据的函数 { priceDecimal: func
{{price}}
e、 g:12300
如何将其渲染为:
“12300”
使用mustache模板引擎?在将模型传递到mustache(或任何模板引擎)之前,您应该这样做。除了能够执行字符串操作D外,问题在于并非所有国家/地区的数字格式都相同,因此显示表示可能不同,不应在模板中硬编码。Mustache非常简约,不提供任何支持 您必须提供格式化数据或返回格式化数据的函数
{ priceDecimal: function () { return formatDecimal(this.price); } }
另一种选择是使用支持辅助函数的
Handlebars.registerHelper('decimal', function(number) {
return formatDecimal(number);
});
像这样使用它
{{decimal price}}
虽然我同意你的观点,但是可以使用一种格式来格式化你的数据
简单模板:
<ul>
{{#price}}
<li>{{commaFormat}}</li>
{{/price}}
</ul>
生成的HTML:
<ul>
<li>1,234</li>
<li>123</li>
<li>123,456</li>
<li>1,234,567,890</li>
</ul>
- 1234
- 123
- 123456
- 1234567890
下面是进一步的检查和使用。我为Mustache.js创建了一个小扩展,它支持在表达式内部使用格式化程序,如{{expression | formatter}
您可以在github中查看它:我使用的是来自 首先,安装(并有选择地将其保存到package.json): 接下来,加载辅助对象:
var Handlebars = require('handlebars');
var NumeralHelper = require("handlebars.numeral");
NumeralHelper.registerHelpers(Handlebars);
最后,在页面中使用它:
<script>
myNumber = 12300:
</script>
<div>
{{ number myNumber }}
</div>
myNumber=12300:
{{number myNumber}}
本例的输出为
12300
Yes。java的成员建议应该有一个额外的表示/视图模型。有些人会争辩说数字是通用的,而iso格式是一种文化和一种表现形式。你关心本地化吗?(根据区域设置,使用“,”或“.”作为分隔符)谢谢您的扩展。它在Chrome和FF中运行良好,但在IE11中,如果出现JS错误(可能是由于eval),则无法正常工作。我不确定
var Handlebars = require('handlebars');
var NumeralHelper = require("handlebars.numeral");
NumeralHelper.registerHelpers(Handlebars);
<script>
myNumber = 12300:
</script>
<div>
{{ number myNumber }}
</div>