我正在使用ExtJs 4.2.1。商店加载事件的records
参数显示为null
。
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();
错误消息在控制台处抛出: -
TypeError: Cannot read property '0' of null
任何人都可以帮我吗?
答案 0 :(得分:2)
你能试试吗?
如果这不能在JSFiddle上发布,那么您的代码可能还有其他问题。
store.load({
callback: function(records, operation, success) {
alert(records.length);
}
});
答案 1 :(得分: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
});
答案 2 :(得分: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'
}
}
});
答案 3 :(得分:0)
也许为时已晚,无法帮助你,但我找到了一个解决方案(记录):
st = Ext.getStore('MyJsonStore');
st.on('load', function(store, records, successful, eOpts) {
//Block of codes
var access = records[0].get('access');
//Block of codes
});
st.load();
这样,您现在可以访问数据行。