从Store检索值

时间:2012-07-29 18:04:27

标签: sencha-touch-2

我有以下商店:

Ext.define('Sencha.model.MenuPoint', {
extend: 'Ext.data.Model',

config: {
    fields: [
        {name: 'id', type: 'string'},
        // this is id of the element, example child id, report id, and so fourth
        //{name: 'elementId', type: 'int'},
        {name: 'name', type: 'string'},
        {name: 'icon_url', type: 'string'},
        {name: 'xtype', type: 'string'}
    ]
}
});

我设法插入并检索这样的值:

var keyValue = new Object();
keyValue.key = "adultId";
keyValue.value = adultObj.adultId;
console.log("keyValue: "+keyValue);
var sessionStore = Ext.getStore('MySessionStore');
sessionStore.add(keyValue);
sessionStore.sync();

var index = sessionStore.find('key',keyValue.key);
console.log("index: "+index);
var keyValue2 = sessionStore.getAt(index);
console.log("keyValue2: "+keyValue2);

但是首先获取索引,然后获取值,这样做很麻烦,是不是可以做这样的事情:

var value = store.get(key);

2 个答案:

答案 0 :(得分:6)

你可以使用功能

var record = store.findRecord('id', key)

的捷径
index = store.find('id', key);
record = index != -1 ? store.getAt(index) : null;

干杯,奥列格

答案 1 :(得分:0)

使用

store.findRecord('id', key, 0, false, true, true);

默认情况下,findRecord搜索使用regexp。您应该传递所有6个参数以获得===

之类的表达

或者如果你发现" id"试试store.getById(key)

请参阅fiddle