Rally App SDK 2.0: Nu se poate modifica obiectul QueryFilter după crearea inițială

Încerc să creez dinamic filtre pentru o rallycard folosind un obiect QueryFilter. Mai întâi creez o matrice de QueryFilter care conține filtrarea pe o pereche de proprietăți/valori. Apoi verificați alte câmpuri pentru valori pentru a decide dacă să adăugați acele proprietăți în QueryFilter. Totuși, se pare că după creație, chiar dacă sunt capabil să accesez obiectul, refuză să fie anexat.

Iată un exemplu al modului în care este structurat:

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
    }));
}
3

1 răspunsuri

Se pare că obiectul returnat trebuie să fie realocat în interiorul unei matrice, după cum urmează:

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
    }))];
}
1
adăugat
JavaScript, România - Moldova
JavaScript, România - Moldova
328 participanți

Comunitatea Română JavaScript: github.com/js-ro Pentru confort, opriți notificările. Parteneri: @node_ro, @php_ro, @python_ro, @seo_ro, @RomaniaGroup, @ai_ro, @Grupuri_IT Offtop: @holywars_ro Joburi: @js_jobs_ro Sponsored with ❤️ by ciupacabra.com