Ошибка фильтра angularjs: $ injector: unpr Неизвестный поставщик - PullRequest
1 голос
/ 30 сентября 2019

Я пытаюсь использовать пользовательский фильтр в ng-repeat, но сталкиваюсь с ошибкой, как показано ниже.

Ошибка: $ injector: unpr Неизвестный поставщик Неизвестный поставщик: $ scopeProvider <- $ scope<- ngRepeatFinishFilter </p>

Вот мой HTML

<tr ng-repeat="person in (sc.people|ngRepeatFinish)| filter:f">

Вот мой контроллер

(function () {
"use strict";
var app = angular.module('MYAPP');

app.controller("SearchController", ["mainSearch", "$routeParams", "$scope", SearchController]);

app.filter('ngRepeatFinish', function ($timeout, $scope) {
    return function (data) {
        //var me = this;
        var flagProperty = '__finishedRendering__';
        if (!data[flagProperty]) {
            Object.defineProperty(
                data,
                flagProperty,
                { enumerable: false, configurable: true, writable: false, value: {} });
            $timeout(function () {
                delete data[flagProperty];
                $scope.setNRCGroupColor();
                //me.$emit('ngRepeatFinished');
            }, 0, false);
        }
        return data;
    };
});

function SearchController(mainSearch, $routeParams, $scope) {
   //
}

}());

1 Ответ

0 голосов
/ 30 сентября 2019

Внедрение $scope в фильтры приводит к ошибке, попробуйте использовать вашу область как:

app.filter('ngRepeatFinish', function ($timeout) {
    return function (data, scope) {
        // scope here will give you all access to $scope
        // your other code
    };
});
...