2017-05-22 46 views
0

使用ROUND()过滤器,我可以得到正确的精度十分之一的地方,如在nunjucks模板中将值渲染到十分之一?

{{ value | round(1) }} 

但是我还是想显示的十分之一的地方,如果value为零或整个整数。 (0.0而不是0,3.0而不是3)

是否有不同的方法或其他方式来呈现所有值到十分之一?

回答

0

这里是因为圆形过滤自定义过滤器将不能保持零或整个整数的十位的逻辑:

nunjucks.configure().addFilter('tenths', function(num) { 
     return parseFloat(num).toFixed(1); 
    }); 

然后用法与任何过滤器相同:

{{ num | tenths }} 
0

添加你自己filter

var env = nunjucks.configure(... 

env.addFilter('round1', function(num) { 
    if (!isNaN(num)) 
     return '???'; 

    return parseFloat(num).toFixed(1);  
}); 

使用

{{ value | round1 }} 
+0

上述逻辑将返回'???'因为if语句没有被封闭,并且isNaN的逻辑被颠倒过来。 –

+1

是的。这是一个错误。 '当然,if(isNaN(num))...'是正确的。 –