В моем приложении есть некоторые данные, которые являются общими для всего приложения. Но данные заполняются после загрузки представления. Например, такие данные, как пользовательские настройки, профиль и т. д. Я знаю, что мы можем использовать разрешение для загрузки данных до загрузки представления, но я не могу добавить разрешение для всех маршрутов. Поэтому, когда конкретный маршрут обновляется, данные недоступны или ответ от сервера приходит после загрузки представления.
Как это может быть сделано?
Ниже приведен пример кода того, чего я пытаюсь достичь. в App.Component.ts, если токен существует, затем перенаправить на запрошенную страницу, иначе перенаправить на вход в систему.
if (token)
{
this.commonServ.loadAppData();
this._router.navigate([(path == 'login' || path == '') ? 'test' : path]);
}
else
this._router.navigate(['login']);
Метод загрузки данных обращается к нескольким API и загружает данные в модели.
Например:
public loadAppData() {
this.getUserSettings().then(settings => {
if (settings) {
//Do Something
}
}, error => {
});
this.setUserProfile().then(settings => {
//Do something
});
}
Данные из setUserProfile поступают после загрузки представления. Как это может быть сделано?
Спасибо!