Angularjs 未知提供程序:筛选器已正确插入,但仍会引发错误

Angularjs 未知提供程序:筛选器已正确插入,但仍会引发错误,angularjs,Angularjs,我不明白发生了什么,所以我希望你能帮助我 有什么问题吗? 我在我的模块中创建了一个过滤器,它找不到任何拼写错误或类似的东西,Chrome控制台抛出一个错误:未知的提供者 我的代码 我试了什么? 1小时后,我放弃了搜索任何注射错误,并询问谷歌。谷歌给我看了Stackoverflow。我读了BKM的评论并尝试了一下。好出于某种原因,它起了作用 但是在我看来,将我的过滤器与$filter一起使用是错误的。为什么我不能按照《开发人员指南》所示的方式去做呢?解决这个问题的方法非常简单。注入过程是注入模块,

我不明白发生了什么,所以我希望你能帮助我

有什么问题吗? 我在我的模块中创建了一个过滤器,它找不到任何拼写错误或类似的东西,Chrome控制台抛出一个错误:未知的提供者

我的代码 我试了什么? 1小时后,我放弃了搜索任何注射错误,并询问谷歌。谷歌给我看了Stackoverflow。我读了BKM的评论并尝试了一下。好出于某种原因,它起了作用


但是在我看来,将我的过滤器与$filter一起使用是错误的。为什么我不能按照《开发人员指南》所示的方式去做呢?

解决这个问题的方法非常简单。注入过程是注入模块,而不是注入其他定义点。在任何注入过滤器的示例中,它们都是在不同模块中定义的过滤器。不能/不应注入当前模块中定义的任何内容

例如,在:


要使用此筛选器,将插入phonecatFilters模块,而不是复选标记筛选器。

这是不正确的。可以在使用过滤器的同一模块中定义过滤器。哦,是的,有道理:P对不起,我理解错了。我发现了我的错误。这是过滤器的名称。我必须移除TournameTFilter的过滤器。。。哈哈。
angular.module('Prizeplay.Lobby.Browser', ['ui.router', 'ui.bootstrap']);
angular.module('Prizeplay.Lobby.Browser')
    .filter('tournamentFilter', [function() {
        return function(input, filter) {
            console.log('tournamentFilter: Success!');
            return input;
        };
    }])
    .directive('appTournamentBrowser', [function() {
        return {
            restrict: 'E',
            replace: true,
            controller: ['$scope', 'tournamentFilter', 'filterService', function($scope, tournamentFilter, filterService) {

                $scope.activeRow = null,

                    $scope.tournaments = [];

                $scope.$on('filter:changed', function(event, currentFilter) {
                    //this works perfectly :)
                    $scope.tournaments = $filter('tournamentFilter')($scope.tournaments, currentFilter);
                    //this does not work :(
                    $scope.tournaments = tournamentFilter($scope.tournaments, currentFilter);
                });

                $scope.setRow = function(id) {
                    $scope.activeRow = id;
                };

            }],
            templateUrl: 'lobby/browser/tournament-browser.tpl.html'
        };
    }]);
angular.module('phonecatFilters', []).filter('checkmark', function() 
....

angular.module('phonecatApp', ['ngRoute','phonecatControllers','phonecatFilters'])