如何使用JsRender模板格式化十进制

时间:2017-12-04 06:12:25

标签: javascript jsrender

我在cshtml页面中使用JsRender模板。我的数据中有一些小数值,并希望显示2个数字,而不是逗号,如17,89或3,00。当我的数据中有3个时,它在我的模板中只显示3个。

如何格式化我的十进制数据?

我的模板中的一个小例子,展示了我如何使用数据{{> rate}}

由于

1 个答案:

答案 0 :(得分:2)

如果rate保证是一个数字,您可以像这样使用JavaScript toFixed()

{{:rate.toFixed(2)}}

如果rate可以是字符串,则可以通过编写

将其强制转换为数字
{{:(+rate).toFixed(2)}}

如果您希望更好地分离代码和标记,可以定义converter

$.views.converters("dec",
  function(val) {
    return (+val).toFixed(2);
  }
);

然后写:

{{dec:rate}}

您甚至可以使转换器变得智能,并接受places=n属性,以配置小数位数:

$.views.converters("dec",
  function(val) {
    return (+val).toFixed(this.tagCtx.props.places || 2);
  }
);

然后可选择指定小数位数:

{{dec:rate places=3}}