Ext JS - 如何从 ViewModel 中获取应用程序的名称?

Ext JS - How to get name of application from within ViewModel?

我的 Dr. Evil 应用程序 name 定义为 DrEvil:

Ext.define('DrEvil.Application', {
    extend: 'Ext.app.Application',

    name: 'DrEvil',

    stores: [
        // TODO: add global / shared stores here
    ],

    launch: function () {
        // TODO - Launch the application
    }
});

在我的视图模型中,有没有办法检索这个名字?我希望像 Ext.app.name 这样的东西能把它拉起来,但结果是空的。我一直在遍历 ExtExt.app 等属性,但似乎找不到它。

这可能是一件微不足道的事情,它正对着我,但我做了 google ExtJS 的 N 个变体在视图模型中获取应用程序的名称没有相关内容。

我正试图说服公司为 ExtJS 购买 Eclipse 插件!可能会在一秒钟内回答这个问题。

您正在寻找获取应用程序命名空间。

DrEvil.app.getApplication().getName()

如果您正在使用 Ext 4+ 并使用 Ext.application 语法创建您的应用程序,那么在全局命名空间中将有一个对您的应用程序的引用:

Ext.application({
    name: 'DrEvil',
    launch: function() {
        // do some stuff
    }
});

http://docs.extjs.com/extjs/4.1.3/#!/api/Ext.app.Application

此时,DrEvil应该定义在全局范围内。现在,您应该能够通过 DrEvil.getApplication().name 将应用程序名称引用为字符串,尽管这对于您要执行的操作来说可能有点多余。

希望这对您有所帮助。

如果您假设不了解该应用程序,它实际上一点也不明显。

这是通用代码,可以满足您的要求:

var name = Ext.app.Application.instance.getName();

或者在最新版本的 ExtJS 中:

var name = Ext.getApplication().getName();