2015-10-21 5 views
5

Как использовать угловой фильтр $ в пользовательском фильтре? Как вложить $ filter зависимость?

module Filters { 

    export class CustomFilter { 
     public static Factory() { 
      return function (input:<any>) { 

       var result = []; 

       //Would like to utilize $filter.('filter') here 

       return result; 
      } 
     } 
    } 

    angular.module('app') 
     .filter('customFilter', [CustomFilter.Factory]); 
} 
+0

@PSL Большое спасибо, оно решило проблему. Также было бы здорово, если бы вы могли уточнить, что вы подразумеваете под '// Здесь используйте $ filter или filterFilter себя'. Я использовал это успешно: '// public static Factory ($ filter: ng.IFilterService)' –

+0

@PSL FYI, связанная с вашей ссылкой stackoverflow linkedin, не соответствует неправильному адресу. –

+1

Да, что я имел в виду, если вы используете '$ filter ('filter')', чтобы получить встроенную функцию fiter, вы могли бы также ввести 'filterFilter' вместо' $ filter'. – PSL

ответ

7

Вы можете просто вводить $filter и использовать тип ng.IFilterService или специально использовать filterFilter (если вы ищете $filter('filter')) и использовать тип Function.

module Filters { 
    export class CustomFilter { 
     //Here use `$filter` or filterFilter itself 
     //public static Factory($filter: ng.IFilterService) 
     public static Factory(filter:Function) { 
      return function (input:any) { 

       var result = []; 

       //filter is now $filter('filter') 

       return result; 
      } 
     } 
    } 

    angular.module('app') 
     .filter('customFilter', ['filterFilter', CustomFilter.Factory]); 
     //Inject $filter for generic filter getter 
} 
Смежные вопросы