无法在商店或视图中使用getApplication()

jeb*_*bie 6 sencha-touch-2

我正在使用框架的新MVC模式编写一个简单的Sencha Touch 2应用程序 - 因此,有模型,存储,控制器和视图,所有这些都与应用程序绑定在一起.

现在,有可能使用"this.getApplication()"来获取这个超级超级类"应用程序"的实例.

现在有问题 - getApplication()只返回app-instance,如果我在一个控制器中 - 在视图,模型或商店中,它返回"undefined".

基本上,我可以理解这种行为背后的想法 - 您的业务必须在控制器中,而不是其他地方......所以您不必知道商店,视图或模型等应用程序实例...

好吧但是......让全局属性生活在主应用程序中会非常好.

例如,我想在Application中全局定义我的webservice-url并在我需要的任何地方使用该变量 - 不幸的是,我也需要在商店中使用这个url.

现在,我看到在商店中访问此全局变量的唯一方法是通过我的命名空间.而不是使用"this.getApplication().serviceUrl"我只通过命名空间找到了"NameOfMyApp.app.serviceUrl"的解决方案 - 而这可能不是解决此问题的最佳方法.

关于那个问题的任何想法?是否有更好的,始终可行的方式从各处获取应用程序实例?或者,如果不在应用程序中,我应该在哪里存储全局变量?

rdo*_*gan 3

AppName.app您可以在最新的 Sencha Touch 2 beta 中访问该属性上的应用程序实例。

Ext.application({
    name: 'Sencha',

    launch: function() {
        // Logs the application instance
        console.log(Sencha.app);
    }
});
Run Code Online (Sandbox Code Playgroud)