我正在创建一个自定义的 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