在AngularJS中还原一个过滤器

Revert a filter in AngularJS

本文关键字:一个 过滤器 AngularJS 还原      更新时间:2023-09-26

我正在以编程方式应用AngularJS过滤器,如下所示:

filtered = $filter('number')(value, 2);

会得到类似5,000.00的东西。我需要一种方法来获取过滤值并剥离格式,这样我就可以从5,000.00中获得5000。我可以用javascript做到这一点,但我认为可能有一种方法可以使用我不熟悉的Angular来做到这一点。

想法吗?

大多数情况下,你可以在普通js或jQuery中做的事情,在AngularJS中也可以做到。是的,你可以在AngularJS中将float/double转换为int,像这样

in controller:

$scope.floatNum1 = 12.00
$scope.floatNum2 = 10.89

In View:

{{floatNum1 | number:0}}  // it will render 12
{{floatNum2 | number:0}}  //it will render 11

希望这就是你要找的

如何创建自己的自定义过滤器?

app.filter('round', function() {
  return function(input, count) {
    var output;
    //Your code here
    output = Math.floor(input, count); //something like that
    return output;
  }
});

filtered = $filter('round')(value, 2);

或在html:

<span ng-bind="myVal | round:2"></span>  <!-- or <span> {{myVal | round}} </span> -->

这是一个jsFiddle

解析为不带逗号的float:

var filtered = '5,000,000.00';
var source = parseFloat(filtered.replace(/,/g, ''));

我使用了Joaozito Polo的答案,但在RegExp中添加了g修饰语,因为没有它,它将只替换1个逗号。