【发布时间】:2018-11-14 17:44:52
【问题描述】:
我为我的应用程序使用 angular-cli,我有一个登录页面,这里是提交它的处理程序:
onSubmit() {
this.authService.login(this.uname.value, this.pass.value)
.subscribe(
(user: User) => {
this.username = user.username;
localStorage.userExist = true;
this.route.navigate(['/office/1']);
},
(err) => {
this.errorFromServer = err.error;
});
}
提交后,我希望我会被重定向到localhost:3000/office/1,但是,我得到了一个错误:
GET http://localhost:3000/api/plan net::ERR_CONNECTION_RESET.
http://localhost:3000/api/plan 提供有关办公室计划的信息,我在 PlanResolver 的帮助下获得了这些数据。实际上,当我在办公室之间切换时,我可以得到这些数据,但是当我尝试从登录页面重定向时它不起作用。因此,订阅内的导航可能有问题。
我有两个解析器应该在导航之前执行:
{path: 'office/:id', component: OfficesComponent,
resolve: {cres: OfficeResolver, plan: PlanResolver},
canActivate: [AuthGuardService]},
当我有一个解析器时,它工作得很好,所以我决定用 forkJoin 将两个解析器合并为一个,但我得到了同样的错误。
我现在唯一的解决方案是将导航放入 SetTimeout:
setTimeout(() => {
this.route.navigate(['/office/1']);
}, 500);
如果您有任何想法,请告诉我。
谢谢大家。
【问题讨论】:
标签: angular angular2-observables resolver