Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Доступ к фильтру в директиве (https://javascript.ru/forum/angular/50190-dostup-k-filtru-v-direktive.html)

kobloff 16.09.2014 09:39

Доступ к фильтру в директиве
 
Измучился совсем. Нэразумэю.

MyApp = angular.module('MyApp', []);

MyApp.filter('MyFilter', function(){
   // do something...
});

MyApp.directive('MyDirective', function(){
   // Как мне вот тут получить доступ к $filter('MyFilter')?
});

nerv_ 16.09.2014 10:10

MyApp.directive('MyDirective', ['$filter', function($filter){
    $filter('MyFilter')(options);
}]);

kobloff 16.09.2014 10:26

Не взлетает.

MyApp.directive('MyDirective', ['$filter', function(){
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function($scope, element, attrs, ngModel, $filter){
            ngModel.$formatters.push(function(text){
                return $filter('MyFilter')(text);
            });
        }
    }
}]);



Object is not a function.

nerv_ 16.09.2014 10:28

Так сложно скопировать мою первую строчку?

kobloff 16.09.2014 10:35

Пардон.

MyApp.directive('MyDirective', ['$filter', function($filter){
    return {
        restrict: 'A',
        require: 'ngModel',
        link: function($scope, element, attrs, ngModel, $filter){
            ngModel.$formatters.push(function(text){
                return $filter('MyFilter')(text);
            });
        }
    }
}]);


Не взлетает. Object is not a function.

nerv_ 16.09.2014 10:41

link: function($scope, element, attrs, ngModel, $filter){

Сюда фильтр зачем добавил? В моем примере не было.

kobloff 16.09.2014 10:44

Взлетело!

Если не затруднит, расскажи, правила применения передачи аргументов.
Или сошли на что нибудь толковое.

nerv_ 16.09.2014 10:45

https://docs.angularjs.org/api/ng/service/$filter


Часовой пояс GMT +3, время: 08:56.