Javascript Mustache.js lambdas和数字格式设置为固定
我正在尝试设置一个mustache.js模板,该模板使用lambda将数字格式化为特定的小数位数,我遇到了一些问题。给定一个如下所示的对象:Javascript Mustache.js lambdas和数字格式设置为固定,javascript,lambda,mustache,tofixed,Javascript,Lambda,Mustache,Tofixed,我正在尝试设置一个mustache.js模板,该模板使用lambda将数字格式化为特定的小数位数,我遇到了一些问题。给定一个如下所示的对象: { x: 123, points: [ { name: "foo", y: 1.234567 }, { name: "bar", y: 2.123456 }, { name: "fax", y: 3.623415 } ] } 首先,我尝试设置一个模板,如下所示: v
{
x: 123,
points: [
{ name: "foo", y: 1.234567 },
{ name: "bar", y: 2.123456 },
{ name: "fax", y: 3.623415 }
]
}
首先,我尝试设置一个模板,如下所示:
var template = "{{x}}{{#points}}<br/>{{name}}, {{#y.toFixed}}2{{/y.toFixed}}";
这没用。我在模板中仍然得到一个空白。那么,Mustache.js是否不能处理数字上的本机函数和原型函数,或者我做错了什么 这样试试:
我完成了你的部分:{{/points}
我添加了一个函数toFixed
,对应于
有了这个,我可以通过解析浮点并调用toFixed来更改
{{{y}}
的呈现方式。回答得好,我就是这么做的,你比我写的更好。很好。这也是我得出的结论(但我不想成为那个回答自己问题的人)。谢谢
Number.prototype.toMustacheFixed = function(){
var n = this;
return function(d){ return n.toFixed(d); };
};
var template = "{{x}}{{#points}}<br/>{{name}}, {{#y.toMustacheFixed}}2{{/y.toMustacheFixed}}"
Number.prototype.toMustacheFixed = function(){
return function(){ return 123.45; };
};