0
var pmStore = new storeOfUsers(); // storeOfUsers is an Ext.data.DirectStore with autoLoad: true
console.log(pmStore.data); // is an Ext.util.MixedCollection with 6 items including user_id == 1

var pms = pmStore.data.filter('user_id', 1);
console.log(pms); //is an Ext.util.MixedCollection with length == 0

こんにちは。
MixedCollection をフィルタリングした後、user_id == 1 の結果がありますが、返されたコレクションは空です。
ありがとう。

4

2 に答える 2

0

私の推測では、ストアの非同期読み込みに問題があると思います。

ロードされる前にストアをフィルタリングしている可能性があります。過去に、console.log() が同期データを誤って表示するインスタンスがありました (呼び出しが完了するとログが更新されたかのように)。

自動ロードをキャンセルして、代わりにデータをフィルタリングするコールバックを使用して手動ロードを実行します。

于 2012-07-13T13:03:26.193 に答える
0

コレクションを間違ってフィルタリングしています。Ext.util.Filter オブジェクトを使用して MixedCollection をフィルタリングする必要があります。次に例を示します。

//your store
var pmStore = new storeOfUsers();

//Create the filter 
var lFilter = new Ext.util.Filter({
    property: 'user_id',
    value   : 1
});

//Filter the data
var pms = pmStore.data.filter(lFilter);
于 2012-07-13T11:01:11.420 に答える