这个
new breeze.Predicate('user', breeze.FilterQueryOp.Contains, 'a')
.and('foo', breeze.FilterQueryOp.GreaterThan, 'bar')
.or('also', breeze.FilterQueryOp.StartsWith, 'value')
.toString()
返回
"(({user} substringof {a}) and ({foo} gt {bar})) or ({also} startswith {value})"
如何从这个字符串创建微风。谓词?最简单的方法是什么?
可以使用简单地创建一个谓词
var predArgs = ["Freight", "gt", 100];
var p1 = Predicate.create(predArgs);
在微风谓词中只有“and”、“not”和“or”逻辑词
几乎解决方案是删除所有圆括号,然后用逻辑词分隔。之后获取第一个谓词,如“{user} substringof {a}”并将其解析为 [“user”、“substringof”、“a”] 并创建谓词。然后对于每个逻辑词,通过 switch 运算符和相同的解析添加带有该逻辑词的下一个谓词。