如何在Sencha Touch的两个键的基础上找到Store的价值?

时间:2013-08-19 12:22:59

标签: sencha-touch sencha-touch-2 sencha-architect

假设我有一个包含以下模型结构的商店:

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;

工作正常。但我希望在两个键的基础上从商店获得价值(即key1& key2) 但我不知道如何做到这一点。请给我适当的解决方案。

2 个答案:

答案 0 :(得分:2)

你可以尝试这段代码......

var filterValue = null;
favoritStore.each(function(record){
      if(record.get('Key1') == 'yourValue1' && record.get('Key2') == 'yourValue2') {
         filterValue = record;
      }
});

答案 1 :(得分: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