[英]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.