2015-10-21 31 views
5

Come posso utilizzare il filtro $ angolare all'interno di un filtro personalizzato? Come iniettare la dipendenza da $ 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 Grazie mille, ha risolto il problema. Inoltre sarebbe bello se tu potessi chiarire ulteriormente cosa intendi con '// Qui usa $ filter o filterFilter stesso '. L'ho utilizzato con successo: '// Factory statico pubblico ($ filter: ng.IFilterService)' –

+0

@PSL FYI il tuo link StackOverflow linkedin è danneggiato da indirizzi errati. –

+1

Sì, volevo dire che se si sta usando '$ filter ('filter')' per ottenere la funzione built fiter, si potrebbe anche iniettare 'filterFilter' invece di' $ filter'. – PSL

risposta

7

Si può solo iniettare $filter e tipo ng.IFilterService utilizzare o specificamente utilizzare filterFilter (se siete alla ricerca di $filter('filter')) e il tipo di Function usare.

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 
} 
Problemi correlati