将记录添加到Ext.data.ArrayStore

时间:2014-04-01 21:22:40

标签: javascript json extjs extjs4

如何将以下记录(从警报中)添加到Ext.data.ArrayStore中?注释掉的代码(在newStore赋值中)显示了最初在商店中设置的数据并且似乎有效。循环中的代码显示了我尝试过的不起作用的内容。

        var newStore = new Ext.data.ArrayStore({
            fields: [
                'id',
                'value'

            ]
            //data: [[1, 'x'], [2, 'y']]
        });

        //alert(records.toSource());

        Ext.each(records, function(rec) {
            alert(rec.get('id') + ' ... ' + rec.get('value'));
            //newStore.data.add(rec);
            //Ext.apply(newStore, rec);
        });

2 个答案:

答案 0 :(得分:3)

.add()期待一个记录对象。如果Ext.each()中的对象采用

格式
{
   id:"~~", 
   value:"~~"
}

只需调用newStore.add(rec);即可。

如果不是,你需要通过这样的方式建立一个psudo记录:

Ext.each(records,function(rec){ 
     newStore.add({id:rec.id,value:rec.value}); 
}

这是一个工作示例的小提琴

http://jsfiddle.net/7a86L/

答案 1 :(得分:0)

var arrayData = [
['Jay Garcia', 'MD'],
['Aaron Baker', 'VA'],
['Susan Smith', 'DC'],
['Mary Stein', 'DE'],
['Bryan Shanley', 'NJ'],
['Nyri Selgado', 'CA']
];
var store = Ext.create('Ext.data.ArrayStore', {
data : arrayData,
fields : ['personName', 'state']
});



console.log(store.first().data)