2

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

誰でもこれで私を助けることができますか?

4

4 に答える 4

2

これを試すことができますか?

これが JSFiddle の投稿で機能しない場合は、コードに何か問題がある可能性があります。

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