2014-04-01 92 views
1

如何將以下記錄(從警報中)添加到Ext.data.ArrayStore中?註釋掉的代碼(在newStore賦值中)顯示了原來在商店中設置了哪些數據,並且似乎有效。循環中的代碼顯示了我嘗試過的功能無效。將記錄添加到Ext.data.ArrayStore

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

回答

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/

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) 
的小提琴