如何在自定义 AngularJS 过滤器中允许"named arguments"?



我正在创建一个自定义的 Angular 过滤器,我想提供最接近"命名参数"(如 Python)的东西,主要用于布尔选项,以避免传递不可读的真/假值序列。

如果我只需要考虑从"原始"javascript调用,我会接受某种选项对象:

myFilter(someValue, {
    foo: false,
    bar: true
});

但是,我希望这也易于在 Angular 表达式中使用。是否可以在表达式中传递这样的对象?如果不是,或者如果它只是太笨拙,还有什么更惯用的方法呢?

是的,为什么不呢,您可以在过滤器中轻松使用命名参数:

app.filter("myFilter", function() {
    return function(item, filterConfig) {
        if (filterConfig.foo) {
            // return something
        } else {
            // return something else
        }
    }
});

和用法:

{{ myValue | myFilter:{foo:false} }}

看到这个 jsfiddle

相关内容

最新更新