【问题标题】:using number filter in custom filter Angular JS在自定义过滤器Angular JS中使用数字过滤器
【发布时间】:2016-12-26 10:56:23
【问题描述】:

我正在为 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(",","'");
};
 });

【问题讨论】:

  • 你试过注入 $filter 服务吗?并使用 $filter('number')?

标签: javascript angularjs filter


【解决方案1】:

发帖人更新了问题,所以我添加了另一个答案。

您可以将$filter 注入您自己的过滤器。这将允许您按名称检索 number 过滤器,然后随意使用它。

示例:

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

然后在 HTML 中你可以说... 3445.05252 | tick

【讨论】:

  • 当我尝试

    {{ 245258.222|tick}}

    时,我也会得到 {{ 245258.222|tick}} 。有些东西不工作。
  • 我首先在 JS Fiddle 中尝试这个,我不知道我是否可以在这里看到控制台,但我已经粘贴了整个代码,所以你可以看到它。
  • 糟糕,我忘了返回一个函数。在您的示例中,您将 $filter 注入错误的位置。
  • 太棒了!很高兴我能提供帮助(即使我确实犯了一些错误哈哈)。
【解决方案2】:

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

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

例如 3445.05252 | number | thick

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

结果:3'445.1

【讨论】:

  • 我已经发布了另一个答案
猜你喜欢
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
  • 2019-12-08
  • 2015-04-26
  • 1970-01-01
相关资源
最近更新 更多