0

如果过滤器的名称是静态的,您可以将过滤器的名称加上“过滤器”添加到组件的控制器函数中,如下所示:

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

有没有办法将过滤器的名称传递到 angularjs 版本 1.6 组件中,使用“@”作为参数/属性字符串绑定,然后能够按名称获取该过滤器并在该组件的控制器内部使用它?

4

1 回答 1

0

$filter 服务注入到组件的 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);
        }
    ]
});
于 2017-01-23T22:56:39.883 回答