2

我正在使用 ExtJs 4.2.1。store的recordsload 事件参数如图所示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

谁能帮我这个?

4

4 回答 4

2

你的模型是什么样的?您是否尝试在数据进入商店之前对其进行处理?如果是这样,您可能应该在代理中使用阅读器来进行存储配置,如下所示。否则,@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'
        }
    }
});
于 2013-07-16T16:51:34.493 回答
2

你能试试这个吗?

如果在发布 JSFiddle 后这不起作用,则您的代码可能还有其他问题。

store.load({
    callback: function(records, operation, success) {
        alert(records.length);
    }
});
于 2013-07-05T03:57:12.843 回答
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
});
于 2013-07-04T08:46:23.577 回答
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();

这样,您现在可以访问数据行。

于 2018-04-23T12:06:42.127 回答