Angular 过滤最大小数
Angular filter maximum decimals
我想创建一个新的过滤器,以便我得到一个输入,我给出了 最大 小数的数量来显示,return 一个格式化的字符串根据语言环境。
Input(number) Output for 1 decimal Output for 2 decimals
1.01 1 1.01 / 1,01
1.001 1 1
1.1 1.1 / 1,1 1.1 / 1,1
1 1 1
1000 1 000 / 1.000 / 1,000 1 000 / 1.000 / 1,000
我想将 angular 的内置数字过滤器用于区域设置,但我不知道如何删除小数,因为如果我在数字过滤器之后执行此操作,那么我就有了一个区域设置特定的字符串,我以前不能这样做,因为在使用 number:x
之前我不知道如何舍入
有什么提示或想法吗?
你不能,查看过滤器的实现:
// format fraction part.
while (fraction.length < fractionSize) {
fraction += '0';
}
过滤器总是添加零。如果你想达到你想要的效果,你必须自己编写过滤器。
添加了我自己的过滤器,实现如下:
app.filter('numberNoDecimalsIfZeroFilter', function($filter) {
return function(value, fractionSize) {
//If has no decimals, then don't show
if(value%1 === 0){
fractionSize = 0;
}
return $filter('number')(value,fractionSize);
}
});
这样使用:
<div class="form-group">
<label class="control-label">Amount: </label>
{{::value.amount | numberNoDecimalsIfZeroFilter}}
</div>
我想创建一个新的过滤器,以便我得到一个输入,我给出了 最大 小数的数量来显示,return 一个格式化的字符串根据语言环境。
Input(number) Output for 1 decimal Output for 2 decimals
1.01 1 1.01 / 1,01
1.001 1 1
1.1 1.1 / 1,1 1.1 / 1,1
1 1 1
1000 1 000 / 1.000 / 1,000 1 000 / 1.000 / 1,000
我想将 angular 的内置数字过滤器用于区域设置,但我不知道如何删除小数,因为如果我在数字过滤器之后执行此操作,那么我就有了一个区域设置特定的字符串,我以前不能这样做,因为在使用 number:x
有什么提示或想法吗?
你不能,查看过滤器的实现:
// format fraction part.
while (fraction.length < fractionSize) {
fraction += '0';
}
过滤器总是添加零。如果你想达到你想要的效果,你必须自己编写过滤器。
添加了我自己的过滤器,实现如下:
app.filter('numberNoDecimalsIfZeroFilter', function($filter) {
return function(value, fractionSize) {
//If has no decimals, then don't show
if(value%1 === 0){
fractionSize = 0;
}
return $filter('number')(value,fractionSize);
}
});
这样使用:
<div class="form-group">
<label class="control-label">Amount: </label>
{{::value.amount | numberNoDecimalsIfZeroFilter}}
</div>