簡體   English   中英

EXT JS中是否有全局變量

[英]Is there Global variables in EXT JS

在java和C ++中,我們可以全局存儲一個變量,並從項目的任何位置訪問它的值。 比如說,我在一個名為Residence的類中,我將residenceNumber保存為一個名為houseNumberGlobalVariable的全局變量的INT

現在,我可以從項目中的任何類訪問houseNumberGlobalVariable 以類似的方式,我可以使用EXTJS中的全局變量。

我需要從一個類中設置一個值,然后從另一個類中訪問它。 EXT JS中的等價物是什么。 我不認為EXTJS中有一個全局變量概念,但它的等價物是什么?

創建一個特殊類並將所有global變量放在那里。

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

});

這樣,如果您需要在代碼中的任何位置訪問它,只需使用MyApp.global.Vars.houseNumberGlobalVariable

只需在app.js聲明一個變量,它就會充當全局變量。

var globalVar;

你可以添加任何東西

globalVar.myStore = yourStore;

根據您的應用程序,您可以聲明您的全局變量。

場景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'
     },
 });

我注意到這里缺少的一件事是Sencha Architect程序中關於如何創建全局變量的解決方案。

轉到項目檢查器上的“應用程序”節點。 接下來單擊Configs搜索/過濾器框,這不僅用於搜索,還用於創建配置條目。 當你第一次看到這個盒子時,它將有一個Filter Configs...的Smokey預填充文本Filter Configs...

輸入您的全局變量名稱,您將注意到在下面的列表中找不到任何內容(如果在配置列表中找到該值,那么您已經擁有此變量或使用了關鍵字) 文本框右側和鎖定圖標是“添加”按鈕。 單擊“添加”按鈕將全局變量添加到應用程序中。

所以我們假設我們已經創建了Foo變量。 您現在將在配置列表中看到一個條目。 在這個條目的左邊是一個省略號按鈕,這是當前指定我們創建的新變量是一個字符串。 單擊按鈕並將其更改為不同的“數字”字段。 輸入這個新變量的值,現在你已經完成,你有一個全局變量。

那么如何訪問這個新創建的變量? 這里是將全局填充到要使用的局部變量的代碼示例。

var bar= MyApp.app.Foo;

“MyApp”參考是您正在創建的應用程序的應用程序name配置設置。 您可以通過過濾name在“應用程序”節點的配置設置中找到相同的值。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM