Как изменить значение глобальной переменной в любых файлах в TypeScript/Ionic?

Я новичок в TypeScript. Хотелось бы иметь переменную, которую можно изменить и получить в любом месте внутри Ionic. Просмотрел некоторые реализации глобальных переменных, но нашел только образцы при извлечении значений из другого класса/файла.

По сути, я хотел бы сохранить/получить значение токена обновления из oauth2. Это будет часто меняться для каждого вызова API, и его также необходимо получить.

Есть ли способ сделать это быстро?

Заранее спасибо.


person pren    schedule 26.08.2017    source источник


Ответы (1)


Если вам действительно нужно использовать глобальную область, используйте оператор declare для доступа к переменным в глобальной области:

declare var test: any;

class AnyThing {
    changeTest(): void {
        test = 'something';
    }
}

let at = new AnyThing();
at.changeTest();
console.log(test);

Однако вы часто можете использовать другие подходы для совместного использования переменной в вашем приложении, не загрязняя глобальную область видимости. Подход Angular/Ionic заключается в создании службы, которую можно внедрить в любом месте, где вы можете обновить или изменить переменную. Ознакомьтесь с документацией Angular для примера сервиса.

Другой простой подход — использовать локальное хранилище или хранилище сеансов для обмена данными.

//Set the key 'test' to the value 'something'
localStorage.setItem('test', 'something');

//Retreive the key 'test'
localStorage.getItem('test');
person hagner    schedule 26.08.2017
comment
Спасибо за ваши предложения. localStorage - это то, что я ищу! Трудно использовать хранилище ionic, но ваш подход намного проще. Спасибо за это. Вы спасатель жизни! - person pren; 26.08.2017