【问题标题】:Sencha Touch XML Parsing IssueSencha Touch XML 解析问题
【发布时间】:2011-10-06 15:49:47
【问题描述】:

我是 Sencha Touch 框架的新手。我尝试使用文档制作演示应用程序。我正在尝试显示 XML 文件中的记录并以表格格式显示。我无法理解我做错了什么。我在屏幕顶部获得了 Dock 和一个空白页面。下面是我的代码

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>

请帮助我...提前谢谢...

【问题讨论】:

    标签: xml ipad xml-parsing sencha-touch extjs


    【解决方案1】:

    首先,您需要熟悉如何单步执行 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 文件,您将遇到 [this question] 中描述的另一个问题。如果是这种情况,您将在 javascript 控制台中看到错误。

    【讨论】:

    • 嗨 mmigdol.. 抱歉,我忙于其他事情...我尝试了您的解决方案。我包括自动加载。我将整个项目上传到网络服务器并在 iOS 模拟器上运行。我收到另一个错误“TypeError:表达式'records'[undefined] 的结果不是对象。”
    • 勾选自动加载对我有用!我还必须将 XML 文件编码更改为 encoding="ISO-8859-1" 以使其正确读取和显示文件。
    猜你喜欢
    • 2012-08-19
    • 1970-01-01
    • 2013-01-13
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多