在自定义过滤器Angular JS中使用数字过滤器

时间:2016-08-19 10:09:06

标签: javascript angularjs filter

我正在为Angular 1.5中的数字创建自定义过滤器,我需要在其中使用现有的数字过滤器。 我有这个数字格式3445,我需要将其转换为3'445。为此,首先,我需要将输入数字传递给数字过滤器,

3445.05252 - > 3,445.1 - > 3'445.1

问题是我不知道如何在我的过滤功能中使用数字过滤器。这是我的代码:

 app.filter('tick', function () {
      return function(input, $number) {
        var number =$number(input,1);
        return number.toString().replace(",","'");
};

});

我不能像3445.05252那样使用它数量:1 |蜱。必须使用我的过滤器内的数字过滤器。

这里是$ filter注入:

app.filter('tick', function () {
return function(input, $filter) {
        var number = $filter('number')(input,1);
    return number.toString().replace(",","'");
};

});

这是html代码:

<div ng-app="myApp">
    <div ng-controller="MainController">
       <p> {{ 245258.222| tick }}  </p>
    </div>
</div>

这是我的js代码:

 var app = angular.module("myApp", []);

 app.controller('MainController', ['$scope', '$window', function($scope, $window) { 
        $scope.price=2355;
        $scope.url="http://google.com";
  }]);
app.filter('tick', function () {
return function(input, $filter) {
        var numberFilter= $filter('number');
        var number =numberFilter(input,1);
    return number.toString().replace(",","'");
};
 });

2 个答案:

答案 0 :(得分:2)

海报更新了问题,因此我又添加了另一个答案。

您可以将number注入自己的过滤器。这样您就可以按名称检索app.filter('tick', function ($filter) { return function(input) { var numberFilter = $filter('number'); var filteredInput = numberFilter(input, 1); return filteredInput.toString().replace(",", "'"); }; }); 过滤器,并根据需要使用它。

实施例

3445.05252 | tick

然后在HTML中你可以说...... {{1}}

答案 1 :(得分:1)

您可以使用管道在angularJS中应用多个过滤器。

不要试图将$number注入您的函数,只需将两个过滤器应用于HTML中的数据。

e.g。 3445.05252 | number | thick

这将应用数字过滤器,然后将结果传递到您的thick函数。

结果:3'445.1