如何在解析器中更改导航网址ID?

时间:2019-01-28 12:53:49

标签: angular routing angular2-routing angular7 angular2-resolve

我遇到了角度路径解析器的问题。我的案例包括以下步骤:

  1. 转到url app / test / old_key。
  2. 解析器将获取新密钥。
  3. 然后转到url app / test / new_key / description

因此,我在步骤3中遇到问题。如果更改密钥,则会收到错误<bean:define id="beanObj" name="<%=Constants.Header_details%>" scope="session" type="com.domain.HeaderDetails" />

这是我的解析器代码:

Error: Outlet is not activated

我堆叠了我的测试应用。

https://stackblitz.com/edit/as7sdfsd

例如

  1. 我转到网址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); }
  2. 获取新密钥(https://as7sdfsd.stackblitz.io/test/some_key
  3. 然后我希望解析器重定向到新的URL:some_new_key

我已经使用https://as7sdfsd.stackblitz.io/test/some_key_new/description制作了一个工作版本,并将新密钥存储在angular.guard中。但是我仍然想解决这个网址问题。

0 个答案:

没有答案