应用级别变量在Sencha Touch 2中导致Android上的未定义错误

时间:2013-02-28 15:14:42

标签: android global-variables undefined sencha-touch-2.1

我在我的应用程序中使用应用程序级别全局变量,它们在iOS上运行良好。在Android上,我收到以下错误:无法读取未定义的属性baseFetchUrl

有没有人有任何建议为什么会这样?

Ext.application({
    name: 'MyApp',

    //Development URLs
    baseFetchUrl: 'http://xxxx',
    baseStoreUrl: 'http://xxxx',
    rootApiUrl: 'http://xxxx',

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题 - 没有得到解决方案(我认为它与senach的包装方法有关,也许包装过程扰乱了定义的顺序,因此&#34 ; basFetchUrl"尚未定义)。可能最好的方法是创建一个外部配置文件。例如:

Ext.define('AppName.Config', {
    singleton : true,

    config : {
        urls : {
            baseUrl     : 'http://domain.de/file.php',
            superUrl    : 'http://domain.de/files.php'
        },
    },
    constructor: function(config) { // with this you create kind of object, simple said
        this.initConfig(config);
        return this;
    }
});

在你的app.js中添加/扩展

requires: [
'AppName.Config' // make sencha loading the file
]

现在您可以访问这些数据,例如:

AppName.Config.getUrls().baseUrl

或者您可以使用(不推荐)AppName.Config.config.urls.baseUrl(如果我们忘记启动构造函数则需要

希望这会有所帮助(PS。我应该在发送评论之前进行一些拼写检查,否则我必须做很多编辑 - 没有人有时间做这件事;)