3

我正在尝试通过使用 QueryFilter 对象为一个拉力板动态创建过滤器。我首先创建一个 QueryFilter 数组,其中包含对一个属性/值对的过滤。然后,我检查其他一些字段的值以确定是否将这些属性添加到 QueryFilter。但是,似乎在创建之后,即使我能够访问该对象,它也拒绝被附加到。

以下是它的结构示例:

var filters = [Ext.create('Rally.data.QueryFilter', {
    property: 'attr1',
    operator: '=',
    value: this.attr1
})];

if (this.attr2 !== "") {
    filters[0].and(Ext.create('Rally.data.QueryFilter', {
        property: 'attr2',
        operator: '=',
        value: this.attr2
    }));
}

if (this.attr3 !== "") {
    filters[0].or(Ext.create('Rally.data.QueryFilter', {
        property: 'attr3',
        operator: '=',
        value: this.attr3
    }));
}
4

1 回答 1

1

看起来返回的对象必须在数组内重新分配,如下所示:

var filters = [Ext.create('Rally.data.QueryFilter', {
    property: 'attr1',
    operator: '=',
    value: this.attr1
})];

if (this.attr2 !== "") {
    filters = [filters[0].and(Ext.create('Rally.data.QueryFilter', {
        property: 'attr2',
        operator: '=',
        value: this.attr2
    }))];
}

if (this.attr3 !== "") {
    filters = [filters[0].or(Ext.create('Rally.data.QueryFilter', {
        property: 'attr3',
        operator: '=',
        value: this.attr3
    }))];
}
于 2012-05-29T22:15:44.283 回答