Проблема разбора XML Sencha Touch - PullRequest
       31

Проблема разбора XML Sencha Touch

1 голос
/ 06 октября 2011

Я новичок в Sencha Touch Framework. Я попытался с помощью документации сделать демо-приложение. Я пытаюсь отобразить записи из файла XML и отобразить его в табличном формате. Я не могу понять, что я делаю неправильно. Я получаю док в верхней части экрана и пустую страницу. Ниже мой код

index.js

Ext.setup({
onReady: function(){

    Ext.regModel('User', {
        fields: ['id', 'name', 'email']
    });

    var store = new Ext.data.Store({
        model: 'User',
        proxy: {
            type: 'ajax',
            url : 'users.xml',
            reader: {
                type: 'xml',
                record: 'user'
            }
        }
    });


    var list = new Ext.List({
        fullscreen: true,

        itemTpl : '{id} {name}',
        grouped : true,
        indexBar: true,

        store: store
    });
    list.show();

    var panel = new Ext.Panel({
        fullscreen: true,
        dockedItems:[
            {
                dock: 'top',
                xtype: 'toolbar',
                title: 'Users'
            }
        ]
    });
}
});

users.xml

<?xml version="1.0" encoding="UTF-8"?>
<user>
    <id>1</id>
    <name>Ed Spencer</name>
    <email>ed@sencha.com</email>
</user>
<user>
    <id>2</id>
    <name>Abe Elias</name>
    <email>abe@sencha.com</email>
</user>

Пожалуйста, помогите мне ... Заранее спасибо ...

1 Ответ

1 голос
/ 06 октября 2011

Прежде всего, вы захотите познакомиться с тем, как пройти через исходный код ST и установить точки останова, и как просмотреть вывод консоли в вашем браузере.

Попробуйте это: используйте sencha-touch-debug.js вместо sencha.js.Затем с помощью консоли разработчика установите точку останова в методе конструктора класса Ext.data.Store.Внизу внизу метода конструктора вы увидите следующий код:

    } else if (this.autoLoad) {
        Ext.defer(this.load, 10, this, [typeof this.autoLoad == 'object' ? this.autoLoad : undefined]);
    }

Это подсказка для вас, что вам нужно установить атрибут autoLoad для вашего объекта хранилища данных.

Как только вы это сделаете, вы сможете увидеть, что вызывается функция «загрузки» хранилища данных.

Обратите внимание: если вы используете Chrome и пытаетесь загрузить файлы HTML и XML локально (а не с веб-сервера), вы столкнетесь с другой проблемой, описанной в [ этом вопросе ].В этом случае вы увидите ошибку в консоли javascript.

...