4

我有以下商店:

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

?

4

2 回答 2

6

你可以使用功能

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

这是一个捷径

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

干杯,奥列格

于 2012-07-29T20:26:31.200 回答
0

利用

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

默认情况下,findRecord 搜索使用正则表达式。您应该传递所有 6 个参数以获得类似的表达式===

或者,如果您通过“id”找到尝试store.getById(key)

小提琴

于 2016-05-11T08:21:57.077 回答