2015-10-21 102 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 
}