2017-01-23 105 views
0

如果过滤器的名称是静态的,你可以只用“过滤器”附加到你的组件的控制器功能注入过滤器的名称,如:angularjs组件动态过滤器

angular.module('ngApp').component('myComponent', { 
    bindings: { 
     dynamicFilter: '@' 
    }, 
    controller: [ 
     'staticFilterFilter', 
     function(staticFilterFilter) { 
      this.valueSetByStaticFilter = staticFilterFilter('x'); 
     }] 
}); 

有一种将过滤器名称传递给angularjs版本1.6组件的方法,使用'@'作为参数/属性字符串进行绑定,然后能够通过名称获取该过滤器并在该组件的控制器内部使用该过滤器?

回答

0

$filter service注入到组件的Controller中。然后,您可以检索并通过做这样的事情使用过滤器:那么在你的代码将其更改为类似

var filtered = $filter('yourFilterName')(arg1,arg2); 

angular.module('ngApp').component('myComponent', { 
    bindings: { 
     dynamicFilter: '@' 
    }, 
    controller: [ 
     '$filter', 
     function($filter) { 
      var filtered = $filter(this.dynamicFilter)(arg1,arg2); 
     } 
    ] 
}); 
+1

谢谢,我想类似的东西前面,并得到一个错误。但它确实对我有用,谢谢。 – bkinsey808

+0

好东西!高兴它帮助。 –