Существуют ли глобальные переменные в 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.