在指令中使用$ filter时出现角度"未知提供程序"错误

ssl*_*ian 2 angularjs angularjs-directive

我有一个指令,需要在代码中使用angular的$ filter.但是,在尝试使用它时,我收到一个错误:

[$injector:unpr] Unknown provider: FilterProvider <- Filter

以下是导致错误的最小示例:http://jsfiddle.net/5tLtj3nh/

我很难过,想弄清楚我做错了什么.

run*_*arm 5

您使用的$filter服务不正确.

您必须$filter首先从服务中获取过滤器,如下所示:

var filterFilter = $filter('filter');
filterFilter([], 'query');
Run Code Online (Sandbox Code Playgroud)

或一个班轮:

$filter('filter')([], 'query');
Run Code Online (Sandbox Code Playgroud)

如果您感到困惑,'filter'过滤器是angularjs的内置过滤器之一.

还有更多,请参阅:https://docs.angularjs.org/api/ng/filter

  • 货币
  • 日期
  • 过滤
  • JSON
  • 限制于
  • 小写
  • 排序依据
  • 大写

提示:您还可以注入一个单独的过滤器,如下所示:

app.directive('testDirective', ['filterFilter', function(filterFilter) {
    return {
        restrict: 'E',
        template: '<div>testDirective</div>',
        link: function(scope, elem, attrs) {
            filterFilter([], 'query');
        }
    }
}]);
Run Code Online (Sandbox Code Playgroud)