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“数字”过滤器完全相同