У меня проблема с распознавателем угловых маршрутов.Мой случай состоит из шагов:
- Перейдите по ссылке app / test / old_key.
- Средство распознавания получит новый ключ.
- Затем перейдите по ссылке app / test/ new_key / description
Итак, у меня проблема на шаге 3. Если я меняю ключ, я получаю сообщение об ошибке Error: Outlet is not activated
.
Это мой код распознавателя.:
resolve (route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<StepInfo> {
const key = route.paramMap.get('id');
this.key = key;
this.startSession().pipe(
switchMap((data) => {
return this.getCurrentStep(data);
}))
.subscribe(next => {
this.router.navigate(['/test/' + this.key + '/' + 'description']);
});
return null;
}
private startSession (): Observable<SessionResponse> {
const params = new HttpParams().set('key', this.key);
return this.api.get(`session/start`, SessionResponse, params);
}
private getCurrentStep(data: SessionResponse): Observable<StepInfo> {
this.key = data.newKey;
const params = new HttpParams().set('key', this.key);
return this.api.get(`workflow/getcurrentstep`, StepInfo, params);
}
Я включил в стек мое тестовое приложение.
https://stackblitz.com/edit/as7sdfsd
Например,
- Я перехожу на URL
https://as7sdfsd.stackblitz.io/test/some_key
, - получить новый ключ (
some_new_key
) - и затем я хочу, чтобы преобразователь перенаправил на новый URL:
https://as7sdfsd.stackblitz.io/test/some_key_new/description
И я уже сделалрабочая версия с angular.guard
и сохранение нового ключа в localStorage
.Но я все еще хочу решить эту проблему с URL.