【发布时间】:2016-04-07 14:00:44
【问题描述】:
我正在尝试创建一个通用过滤器值转换器以在少数情况下使用。我希望能够通过子对象的属性过滤数组中的项目,如下所示:
<li repeat.for="row of router.navigation | filter:'settings.where':'top'" >
我知道我将不得不解析 settings.where 表达式以获取值。到目前为止,我已经拼凑了以下内容:
import {inject, Parser} from 'aurelia-framework'
@inject(Parser)
export class FilterValueConverter {
constructor(parser) {
this.parser = parser;
}
toView(array, property, exp) {
let expression = this.parser.parse(property);
return array.filter((item) => expression.evaluate(...?) === exp);
}
}
parse 似乎给了我一个表达式,但 Parser 是否设计为在核心框架之外使用? evaluate 需要一个作用域,而我没有这些作用域……我可以遍历表达式树并自己获得结果,但是这样的东西是否已经存在?
【问题讨论】:
标签: aurelia