Angularjs 角度滤波器最大小数

Angularjs 角度滤波器最大小数,angularjs,decimal,angularjs-filter,decimal-point,Angularjs,Decimal,Angularjs Filter,Decimal Point,我想创建一个新的过滤器,以便获得一个输入,并给出最大值小数的数量,以显示并返回一个根据区域设置格式化的字符串 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

我想创建一个新的过滤器,以便获得一个输入,并给出最大值小数的数量,以显示并返回一个根据区域设置格式化的字符串

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';
}
//格式化分数部分。
而(分数长度<分形尺寸){
分数+='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>
这样使用:

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>

数量:
{{::value.amount | numberNoDecimalsIfZeroFilter}

删除小数是什么意思?在视图中。。。或者在模型中?视图中,我希望过滤器返回一个字符串,就像angulars自己的数字过滤器一样。所以当
x
是范围变量时,问题是什么?用法与angulars“数字”过滤器完全相同