Я использую 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);
Если у вас есть идеи, что не так, пожалуйста, скажите мне.
Спасибо всем.