Преобразование Ext.data.JsonReader из ExtJs 3 в ExtJs 4

Я пытаюсь преобразовать этот ридер с Ext 3 на Ext 4. JavaScript выдает исключение. Я правильно преобразовал это?

Исключение JavaScript:

Uncaught TypeError: Cannot read property 'prototype' of undefined 

Код (преобразованные строки прокомментированы):

Ext.onReady(function () {

    Ext.Direct.addProvider(Ext.app.REMOTING_API);

    //var reader = new Ext.data.JsonReader({  // convert from ext 3 to ext 4
    var reader = Ext.create('Ext.data.JsonReader', {
        totalProperty: 'results',
        successProperty: 'success',
        idProperty: 'id',
        root: 'data'
    }, [{
        name: 'id'
    }, {
        name: 'email',
        allowBlank: false
    }, {
        name: 'first',
        allowBlank: false
    }, {
        name: 'last',
        allowBlank: false
    }]
    );

    //var writer = new Ext.data.JsonWriter({  // convert from ext 3 to ext 4
    var writer = Ext.create('Ext.data.JsonWriter', {
        returnJson: false,
        writeAllFields: true
    });

    //var store = new Ext.data.DirectStore({  // convert from ext 3 to ext 4
    var store = Ext.create('Ext.data.DirectStore', {
        api: {
            read: CRUDSampleMethods2.read,
            create: CRUDSampleMethods2.create,
            update: CRUDSampleMethods2.update,
            destroy: CRUDSampleMethods2.destroy
        },
        reader: reader,
        baseParams: {
            dummy: 'blubb'
        },
        writer: writer,
        paramsAsHash: true,
        batchSave: false,
        batch: false,
        prettyUrls: false,
        remoteSort: true,
        listeners: {
            load: function (result) { },
            loadexception: function () {

            },
            scope: this
        }
    });

    // ... code continues

РЕДАКТИРОВАТЬ:

Исправлено:

var reader = Ext.create('Ext.data.JsonReader', {
    totalProperty: 'results',
    successProperty: 'success',
    idProperty: 'id',
    root: 'data'
});

И добавил модель:

    var store = Ext.create('Ext.data.DirectStore', {
        model: 'User',
        api: {

person MacGyver    schedule 29.07.2013    source источник


Ответы (1)


конструктор JsonReader принимать только один параметр. Таким образом, ваш код на самом деле не определяет список полей. Тем не менее, список полей является обязательным либо в магазине (если магазин не использует модель), либо в модели. И это тип ошибки, которую вы получаете, когда в магазине отсутствует объявление полей...

person rixo    schedule 29.07.2013
comment
Спасибо, что избавились от этого исключения (в моем EDIT) ... теперь счетчик загрузки исчезает, а сетка отображается пустой. Я отмечу это как ответ, но я собираюсь задать еще один вопрос с подробной информацией о моем маршрутизаторе и прокси-сервере. Сетка не загружает данные. Надеюсь, это будет последний выпуск. - person MacGyver; 29.07.2013
comment
Этот вопрос связан с: stackoverflow.com/questions/17917316/ - person MacGyver; 29.07.2013