html有个特点:某些小数会变成无限小数。
比如1.05,可能显示为1.049999999999……
在javascript中可以使用.toFixed(value);等方法,进行四舍五入处理,保留固定的小数位数。
但是,art-template模板进行渲染就不支持在模板中直接使用方法。
这时就需要用到art-template模板的过滤器。
语法:
<!--HTML-->
<script type="text/html" id="template">
{{date|过滤器名称}}
</script>
template.defaults.imports.过滤器名称 = function(date){
处理内容
return 处理结果
};
举个栗子:
<div class="box"></div>
<script type="text/html" id="template">
<div class="total-price">
{{list.unit-price*list.num|format}} 元
</div>
</script>
render(data){
// art-template过滤器
template.defaults.imports.format = function(n){
return n.toFixed(2);
};
// art-template模板渲染
$(".box").html(template('template',{list:data}));
}
效果图:
原本:
使用过滤器:
需要注意的是过滤器必须有一个返回值。
并且过滤器还有其他写法。