如果过滤器的名称是静态的,您可以使用" Filter"来注入过滤器的名称。附加到组件的控制器功能中,如下所示:
angular.module('ngApp').component('myComponent', {
bindings: {
dynamicFilter: '@'
},
controller: [
'staticFilterFilter',
function(staticFilterFilter) {
this.valueSetByStaticFilter = staticFilterFilter('x');
}]
});
有没有办法将过滤器的名称传递给angularjs版本1.6组件,作为参数/属性字符串使用' @'然后能够按名称获取该过滤器并在该组件的控制器内使用它?
答案 0 :(得分:0)
将 $filter service 注入组件的控制器。然后,您可以通过执行以下操作来检索和使用过滤器:
var filtered = $filter('yourFilterName')(arg1,arg2);
因此,在您的代码中将其更改为:
angular.module('ngApp').component('myComponent', {
bindings: {
dynamicFilter: '@'
},
controller: [
'$filter',
function($filter) {
var filtered = $filter(this.dynamicFilter)(arg1,arg2);
}
]
});