Angular中的自定义链过滤器

时间:2016-11-01 18:57:44

标签: javascript angularjs angularjs-ng-repeat ng-repeat angularjs-filter

大家!

我遇到了一个问题:我无法在过滤器链中使用的Angular中编写过滤器。我对Angular不够熟悉,所以我希望在我的代码中这将是一个微不足道的错误。

所以,首先我的带有过滤器的js文件(我认为我可以做一些完全愚蠢的事情,所以我几乎提供它):

(function () {
    angular.module('myModule')
        .filter('firstFilter', function () {
            return function (input) {
                    return input;
                }
        });

    angular.module('myModule')
        .filter('secondFilter', function () {
            return function (input, firstParam, secondParam) {
                return input;
            }
        });
})();

然后使用我的html使用secondFilter:

<tr ng-repeat="someObject in (someObjects | secondFilter : firstParam : secondParam)"></tr>

但是当页面加载时它会给我错误:

Unknown provider: secondFilterFilterProvider

如果需要,我可以写完整的错误消息。等待任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

这是因为过滤器返回的函数只接受参数中的输入来传递其他参数,你可以这样做:

 angular.module('myModule')
        .filter('secondFilter', function (firstParam, secondParam) {
            return function (input) {
                return input;
            }
        });

你可以在你的代码中这样调用它:

<tr ng-repeat="someObject in someObjects | filter:secondFilter(firstParam, secondParam)"></tr>