Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sencha touch Can';t覆盖Sencha Touch应用程序中的应用程序变量_Sencha Touch_Extjs_Sencha Touch 2 - Fatal编程技术网

Sencha touch Can';t覆盖Sencha Touch应用程序中的应用程序变量

Sencha touch Can';t覆盖Sencha Touch应用程序中的应用程序变量,sencha-touch,extjs,sencha-touch-2,Sencha Touch,Extjs,Sencha Touch 2,我有一个Sencha Touch应用程序,我正试图为它设置一个全局变量。 编辑:更多说明,我需要能够在所有视图中访问此全局变量 我将应用程序上的变量设置为默认值,然后在启动时覆盖它。但是,它没有被覆盖 Ext.application({ name: 'hd', isAuth: 'false', launch: function() { hd.app.isAuth = 'true'; Ext.Msg.alert(hd.app.isAuth); /

我有一个Sencha Touch应用程序,我正试图为它设置一个全局变量。 编辑:更多说明,我需要能够在所有视图中访问此全局变量

我将应用程序上的变量设置为默认值,然后在启动时覆盖它。但是,它没有被覆盖

Ext.application({
    name: 'hd',
    isAuth: 'false',
    launch: function() {
       hd.app.isAuth = 'true';
       Ext.Msg.alert(hd.app.isAuth); //This always returns 'false'
    }
});

我没有收到任何控制台错误,我也找不到有类似问题的人。我显然做错了。有人能告诉我正确的方法吗?

我认为
应用程序不应该出现在这里。此代码段提醒
true

Ext.application({
    name: 'hd',
    isAuth: 'false',
    launch: function() {
       hd.isAuth = 'true';
       Ext.Msg.alert(hd.isAuth); // will return true as I have tested
    }
});
祝你好运

已编辑:这应该将hd.app.isAuth更改为您想要的值

Ext.application({
    name: 'hd',
    isAuth: 'false',
    setIsAuth: function(value){
        this.isAuth = value;
    },
    launch: function() {
       hd.app.setIsAuth('true');
       Ext.Msg.alert(hd.app.isAuth);
    }
});
你可以在下面做

Ext.application({
name: 'hd',
launch: function() {
   this.isAuth = 'true';
   Ext.Msg.alert(hd.isAuth); //This returns 'true'
   this.isAuth = 'false';
   Ext.Msg.alert(hd.isAuth);//This returns 'false';
}});

从我阅读的文档中,设置全局应用程序变量时需要
app
。例如,如果我提醒
hd.app.isAuth
,它将提醒我在
isAuth
上放置的任何值。在实际视图中,警告hd.app.isAuth将仍然警告该值。但是,警报
hd.isAuth
返回“未定义”。您的示例只是设置一个局部变量,而不是覆盖全局变量,不幸的是,我需要这样做。我刚刚修改了一点,只是为了创建一个setter函数并调用它。我不确定,但我想当直接在本地文件中使用
hd.app.isAuth='true'
时,
scope
可能会出现问题,但全局变量不会被带入其他视图中。你知道为什么会这样吗?我应该怎么做才能使它的价值在整个应用程序中持久化?这确实有效,但它是脆弱的。我还和一些人在官方的Sencha论坛上合作。这似乎确实设置了变量,但新值仅在回调、侦听器等中可用。如果尝试在
配置中使用所述变量,则会失败。似乎没有什么好办法。幸运的是,我们已经找到了一种解决方法,使用了一些AJAX请求和一些PHP会话处理。因为这个答案是最正确的,我接受了。感谢您的帮助。谢谢,这在
launch
中起作用,但我需要能够在应用程序级别设置一个变量,我可以在任何时候操作该变量,并使其值在应用程序的所有视图中都可用。不幸的是,这不起作用。您可以使用代码hd.isAuth=true或false在任意点设置此值