AngularJS - использовать функцию в качестве фильтра внутри контроллера - PullRequest
0 голосов
/ 19 февраля 2019

Если у меня определен фильтр

app.filter('filterName', function() {
    return function(var) {
        // Some filter stuff
    }
}

, я могу вызвать его на контроллере, выполнив $filter('filterName')($scope.someObj);.

Но вот мой вопрос, есть ли у меня функция, которая использует какфильтр

$scope.myFilterFunction = function() {
    return true;
}

В моем HTML

<p ng-repeat="item in items | filter:myFilterFunction">{{item}}</p>

Как я могу использовать эту функцию фильтра в контроллере (я тестировал с $ filter, но выдает ошибку).

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Введите $ filter в контроллер и используйте его вместе с именем фильтра.

controller.$inject = ['$filter'];

function controller($filter){
// code here    
  $filter('filterName')(arg1,arg2);
//
}
0 голосов
/ 20 февраля 2019

Если вы уже внедрили пользовательский фильтр filterName, почему бы не использовать его?

Попробуйте

<p ng-repeat="item in items | filterName">{{item}}</p>

Обновлено

Вы просто пропустили скобки.

<p ng-repeat="item in items | filter:myFilterFunction()">{{item}}</p>
...