Существуют ли глобальные переменные в EXT JS
в java и c++ мы могли бы хранить переменную глобально и получать доступ к ее значению из любого места в проекте.
Скажем, я нахожусь в классе под названием Residence
и я спасаю residenceNumber
что это INT
глобальной переменной с именем houseNumberGlobalVariable
.
теперь, я мог получить доступ к houseNumberGlobalVariable
из любого класса в проекте. Аналогично, существует ли глобальная переменная в EXTJS
что я мог бы использовать.
мне нужно установить значение из одного класса и получить к нему доступ из другого. Что такое эквивалент в EXT JS. Я не думаю, что в EXTJS есть концепция глобальной переменной, но что в ней эквивалентно ?
4 ответов
просто объявите переменную в app.js
он будет действовать как глобальная переменная.
var globalVar;
вы можете добавить что-нибудь в это, как
globalVar.myStore = yourStore;
создайте специальный класс и поместите все свои global
переменные есть.
Ext.define('MyApp.global.Vars', {
singleton: true,
....
houseNumberGlobalVariable: undefined
});
таким образом, если вам нужен доступ к нему в любом месте кода, просто используйте MyApp.global.Vars.houseNumberGlobalVariable
на основе вашего приложения вы можете объявить свою глобальную переменную.
Сценарий 1 : объявить внутри конфигурации
если вы собираетесь использовать методы getter / setter (i.e часто меняйте переменную, затем перейдите к config)
объявление 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 класс!--9-->
если вашему приложению нужна глобальная переменная, но она больше не будет изменяться внутри приложения. Этот класс помогает загрузить переменную constant только один раз. (Я. e вы не собираетесь менять переменную). Этот тип подходит для вашего приложения
объявления
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'
},
});
я заметил, что здесь не хватает одного решения из программы Sencha Architect о том, как создать глобальную переменную.
перейдите в узел "приложение" на инспекторе проектов. Затем нажмите в поле поиска/фильтра Configs, это не только для поиска, но и для создания записей конфигурации. Когда вы впервые посмотрите на это поле, у него будет предварительно заполненный текст Smokey Filter Configs...
.
введите имя глобальной переменной, и вы ничего не заметили в список ниже, (если значение найдено в списке config, то у вас уже есть эта переменная или ваше использование сайта). Справа от текстового поля и значка блокировки находится кнопка "Добавить". Нажмите кнопку "Добавить", чтобы добавить глобальную переменную в приложение.
Итак, скажем, мы создали Foo
переменная на данный момент. Сейчас вы увидите запись в списке конфигурации. Слева от этой записи находится кнопка с многоточием, которая в настоящее время обозначает, что новая переменная, которую мы создали, - это строка. Нажмите кнопку и измените ее на что-то другое, например на поле "Номер". Введите значение для этой новой переменной, и теперь у вас есть глобальная переменная.
Итак, как вы получаете доступ к этой недавно созданной переменной? вот пример кода, заполняющего глобальную переменную в локальную переменную для использования.
var bar= MyApp.app.Foo;
ссылка "MyApp" является приложением name
настройка конфигурации для создаваемого приложения. Вы можете найти это же значение в настройках конфигурации узла приложения путем фильтрации по name
.