3

QueryFilter オブジェクトを使用して、rallycardboard のフィルターを動的に作成しようとしています。最初に、1 つのプロパティと値のペアに対するフィルター処理を含む 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 に答える