【问题标题】:angularjs component dynamic filterangularjs 组件动态过滤器
【发布时间】:2017-06-08 13:54:43
【问题描述】:

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

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

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

【问题讨论】:

    标签: angularjs dynamic filter components angularjs-1.6


    【解决方案1】:

    $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);
            }
        ]
    });
    

    【讨论】:

    • 谢谢,我之前尝试过类似的方法,但遇到了错误。但它确实对我有用,谢谢。
    • 好东西!很高兴它有帮助。
    猜你喜欢
    • 2014-07-31
    • 2014-06-09
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多