Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在mustache中将十进制格式设置为货币格式?_Javascript_Mustache - Fatal编程技术网

Javascript 如何在mustache中将十进制格式设置为货币格式?

Javascript 如何在mustache中将十进制格式设置为货币格式?,javascript,mustache,Javascript,Mustache,我使用mustache呈现通过Ajax接收的json数据 我要以货币格式呈现此数字: {{price}} e、 g:12300 如何将其渲染为: “12300” 使用mustache模板引擎?在将模型传递到mustache(或任何模板引擎)之前,您应该这样做。除了能够执行字符串操作D外,问题在于并非所有国家/地区的数字格式都相同,因此显示表示可能不同,不应在模板中硬编码。Mustache非常简约,不提供任何支持 您必须提供格式化数据或返回格式化数据的函数 { priceDecimal: func

我使用mustache呈现通过Ajax接收的json数据

我要以货币格式呈现此数字:

{{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>