2013-07-04 118 views
1

我正在使用ExtJs 4.2.1。商店載入事件的「記錄」參數顯示爲空。ExtJs 4.2數據存儲加載事件

st=Ext.getStore('MyJsonStore'); 
st.on('load',function (store, records, successful, eOpts){ 
    //Block of codes 
    var access=records[0].data.access; 
    //Block of codes 
}); 
st.load(); 

錯誤消息在控制檯拋出: -

類型錯誤:無法讀取屬性「0」空的

誰能幫我這個??? Thankx!

+0

你可以留言嗎? – Aminesrine

回答

1

嘗試:

st=Ext.getStore('MyJsonStore'); 
st.load(); 
st.on('load',function (store, records, successful, eOpts){ 
    //Block of codes 
    var access=records[0].data.access; 
    //Block of codes 
}); 
+0

沒有幫助。試過了那個。 – rohan

1

你可以試試這個?

如果在JSFiddle後無法正常工作,那麼代碼可能有其他問題。

store.load({ 
    callback: function(records, operation, success) { 
     alert(records.length); 
    } 
}); 
1

你的模型是什麼樣的?在數據進入商店之前,您是否試圖對數據做些什麼?如果是這樣,你可能應該在下面的商店配置代理使用一個閱讀器。否則,@ user1896597答案應該是合適的。

Ext.define('MyJsonStore', { 
    extend: 'Ext.data.Store', 
    model: 'YourModel', 
    proxy: { 
     type: 'ajax', 
     url: '/someurl', 
     reader: { 
      successProperty: 'success', // if success property 
      type: 'json', 
      root: 'results', // if root 

      // THIS IS THE FUNCTION YOU NEED TO MANIPULATE THE DATA 
      getData: function(data){ 
       Ext.each(data.results, function(rec) { 
        var access = rec.access; 
       }); 

       return data; 
      } 
     }, 
     writer: { 
      type: 'json' 
     } 
    } 
});