EXT JS中是否有全局变量

时间:2012-07-05 11:32:46

标签: javascript extjs extjs4 extjs4.1

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

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

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

5 个答案:

答案 0 :(得分:16)

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

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

});

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

答案 1 :(得分:3)

只需在app.js中声明一个变量,它就会充当全局变量。

var globalVar;

您可以添加任何内容,例如

globalVar.myStore = yourStore;

答案 2 :(得分:2)

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

场景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:声明为静态

静态变量是静态变量(与java完全相同)。使用静态变量的好处是变量的生命周期是无限期更长的时间,直到明确清除。

Ext.define("Practice.utilities.AppConstants", {
     statics: {
         mainVarTest: 'mainVarTest'
     },
 });

答案 3 :(得分:1)

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

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

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

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

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

var bar= MyApp.app.Foo;

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

答案 4 :(得分:0)

var globalVar = {};在您的app.js文件中添加文件,即可正常使用