Я работаю над приложением, в котором есть ионный компонент с температурой окружающей среды. Эта информация взята из созданной мной программы TemperatureService.
Теперь на вкладке настроек мне нужна возможность переключения между градусами Цельсия и Фаренгейта, и это изменение должно отражаться во всем приложении, где бы он ни использовался.
HTML-файл страницыимеет компонент, включенный следующим образом:
<ion-col>
<app-temperature-meter></app-temperature-meter>
</ion-col>
И температура извлекается из обслуживания следующим образом:
ngOnInit() {
this.loadedEnvironment = this.currentPlace.getEnvironment();
this.temperatureToShow = this.tempCtrl.toCurrentUnit(this.loadedEnvironment.currTemp);
}
, где tempCtrl
- служба, а toCurrentUnit()
- преобразовывает входтемпература к температуре в текущих единицах (C или F).
Проблема здесь в том, что, поскольку temperatureToShow
определяется во время ngOnInit
, он не изменяется динамически, когда я меняю настройки на странице настроек. .
Уже протестировано: поскольку этот компонент используется на нескольких страницах, я проверил правильное функционирование службы и функции ngOnInit
. Кажется, они работают (т. Е. Если страница загружается в первый раз и вызывается ngOnInit
, показанная температура указана в текущих требуемых единицах измерения)
Ожидания: есть ли что-то похожее на ionViewWillEnter
для компонентовтак, что когда бы они ни находились на экране, я могу проверить текущие единицы температуры из эксплуатации и соответственно изменить вид.