angularjs 组件动态过滤器
angularjs component dynamic filter
如果过滤器的名称是静态的,您可以将过滤器的名称加上 "Filter" 附加到组件的控制器函数中,如下所示:
angular.module('ngApp').component('myComponent', {
bindings: {
dynamicFilter: '@'
},
controller: [
'staticFilterFilter',
function(staticFilterFilter) {
this.valueSetByStaticFilter = staticFilterFilter('x');
}]
});
有没有一种方法可以将过滤器的名称传递到 angularjs 版本 1.6 组件中,并使用“@”绑定为 argument/attribute 字符串,然后能够通过名称和在该组件的控制器内部使用它?
将$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);
}
]
});
如果过滤器的名称是静态的,您可以将过滤器的名称加上 "Filter" 附加到组件的控制器函数中,如下所示:
angular.module('ngApp').component('myComponent', {
bindings: {
dynamicFilter: '@'
},
controller: [
'staticFilterFilter',
function(staticFilterFilter) {
this.valueSetByStaticFilter = staticFilterFilter('x');
}]
});
有没有一种方法可以将过滤器的名称传递到 angularjs 版本 1.6 组件中,并使用“@”绑定为 argument/attribute 字符串,然后能够通过名称和在该组件的控制器内部使用它?
将$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);
}
]
});