1

我想做的事的例子:

query.filter(function (person) {
    return person[this.field] == this.value;
}, {
    field: 'FirstName',
    value: 'Lea'
});

从 JayData 1.3.2 开始,这会引发异常。请注意,使用[]语法对属性名称进行硬编码可以按预期工作(尽管没有用):

query.filter(function (person) {
    return person['FirstName'] == this.value;
}, {
    value: 'Lea'
});
  1. 如果没有 eval() 诡计,这可能吗?
  2. 如果没有,是否有任何替代方案?

注意:如果重要,请使用 OData 提供程序。

4

1 回答 1

1

是的,不支持 query.filter() 有另一种格式:

  query.filter('it.something == this.something')

所以用一些字符串 concat 可以实现你想要的

  query.filter('it.'+field+' == this.value', { value: 'Lea'})
于 2013-09-26T14:29:37.033 回答