1

次のモデル構造を含むストアがあるとします。

Ext.define('MyApp.model.FavoriteScreen', {
extend: 'Ext.data.Model',

config: {
    fields: [
        {
            name: 'Id',
            type: 'int'
        },
        {
            name: 'Key1'
        },
        {
            name: 'Key2'
        },
        {
            name: 'Key3'
        },
        {
            name: 'Key4'
        }
    ]
}

});

key1 に従ってストアから値を見つけるために、次のコード行を記述しました。

var favoritStore = Ext.data.StoreManager.lookup('FavoriteStore'),
index = favoritStore.find('Key1',key_value),
filterValue = index != -1 ? favoritStore.getAt(index) : null;

その正常に動作します。しかし、2 つのキー (key1 と key2) に基づいてストアから値を取得したいのですが、これを行う方法がわかりません。適切な解決策を教えてください。

4

2 に答える 2

2

このコードを試すことができます...

var filterValue = null;
favoritStore.each(function(record){
      if(record.get('Key1') == 'yourValue1' && record.get('Key2') == 'yourValue2') {
         filterValue = record;
      }
});
于 2013-08-19T12:42:27.280 に答える
0

複数のキーでフィルタリングできるストアのフィルター機能を使用する場合は、.each() を使用してフィルターされたストアを反復処理します。

store.filter([
    {property: "key1", value: "value1"},
    {property: "key2", value: "value2"}
]);

ドキュメントで確認してください: http://docs.sencha.com/touch/2.3.0/#!/api/Ext.data.Store-method-filter

于 2013-12-10T21:05:23.967 に答える