8

在 java 和 C++ 中,我们可以全局存储一个变量并从项目中的任何位置访问它的值。说,我在一个名为的类Residence中,我将residenceNumber它保存INT到一个名为的全局变量houseNumberGlobalVariable中。

现在,我可以 houseNumberGlobalVariable从项目中的任何类访问。以类似的方式,是否有一个EXTJS我可以使用的全局变量。

我需要从一个类设置一个值并从另一个类访问它。EXT JS 中的等价物是什么。我认为 EXTJS 中没有全局变量的概念,但它的等价物是什么?

4

5 回答 5

20

创建一个特殊的类并将所有global变量放在那里。

Ext.define('MyApp.global.Vars', {
    singleton: true,
    ....   
    houseNumberGlobalVariable: undefined

});

这样,如果您需要在代码中的任何位置访问它,只需使用MyApp.global.Vars.houseNumberGlobalVariable

于 2012-07-05T11:43:00.287 回答
3

只需在app.js其中声明一个变量即可充当全局变量。

var globalVar;

你可以添加任何东西

globalVar.myStore = yourStore;
于 2012-07-05T15:26:50.163 回答
3

根据您的应用程序,您可以声明您的全局变量。

场景1:在配置中声明

如果您要使用 getter/setter 方法(即经常更改变量,然后选择基于配置)

声明 Appconstants

Ext.define('Practice.utilities.AppConstants', {
    alias: 'widget.AppConstants',
    config: {
        mainVarTest: 'mainVarTest',
    },
    testvar: 'Testing value',
    foo: 'bar',
    meh: 42,
    constructor: function(options) {
        this.initConfig(options);
    }
});

调用变量

var AppConstants = Ext.widget("AppConstants"); 
console.log(AppConstants.getMainVarTest());

场景 2:在 Singleton 类中声明

如果您的应用程序需要全局变量,但在应用程序内部不会再更改。此类有助于仅加载一次常量变量。(即你不会改变变量)。此类型适合您的应用

声明

Ext.define('Practice.utilities.AppConstants', {
    alias: 'widget.AppConstants',
    singleton: true,
    testvar: 'Testing value',
    foo: 'bar',
    meh: 42,
});

打电话

var AppConstant=Practice.utilities.AppConstants;
console.log(AppConstant.foo);

场景 3:声明为静态

Statics 是静态变量(与 java 完全相同)。使用静态变量的优点是变量的生命周期是无限长的,直到明确清除。

Ext.define("Practice.utilities.AppConstants", {
     statics: {
         mainVarTest: 'mainVarTest'
     },
 });
于 2013-12-12T07:44:16.513 回答
1

我注意到这里缺少的一件事是 Sencha Architect 程序中关于如何创建全局变量的解决方案。

转到项目检查器上的“应用程序”节点。接下来单击配置搜索/过滤框,这不仅用于搜索,还用于创建配置条目。当你第一次看到这个框时,它会有一个 Smokey 预填充的文本Filter Configs...

输入您的全局变量名称,您会注意到在下面的列表中没有找到任何内容(如果在配置列表中找到该值,那么您已经有了这个变量或您使用了关键字)。文本框和锁定图标的右侧是一个“添加”按钮。单击“添加”按钮将全局变量添加到应用程序中。

所以假设我们Foo此时已经创建了变量。您现在将在配置列表中看到一个条目。该条目的左侧是一个省略号按钮,这当前指定我们创建的新变量是一个字符串。单击按钮并将其更改为不同的内容,例如“数字”字段。为这个新变量输入一个值,你现在完成了,你有一个全局变量。

那么如何访问这个新创建的变量呢?这是将全局变量填充到要使用的局部变量中的示例代码。

var bar= MyApp.app.Foo;

“MyApp”引用是name您正在创建的应用程序的应用程序配置设置。您可以通过过滤在 Application 节点的配置设置中找到相同的值name

于 2014-10-21T18:02:08.020 回答
0

var globalVar = {}; 添加你的 app.js 文件,它工作正常

于 2018-11-27T19:43:46.947 回答