У меня есть такой резольвер:
export class TaskResolver implements Resolve<Documents> {
constructor(private taskService: TaskService) { }
resolve(route: ActivatedRouteSnapshot): Observable<Documents> {
const taskId = route.params.taskId;
return this.taskService.DocumentsTask(taskId);
}
}
И внутри моего компонента у меня есть:
this.route.data.subscribe((data: { documents: Documents }) => {
if (data.documents) {
this.documents = data.documents;
} else {
this.router.navigate([`/error/404`]);
}
});
Мне нужно переместить this.router.navigate([/error/404
]); внутрь резолвера, таким образом резолвер проверит, пусты ли данные, и перенаправит на ошибку, а не на компонент. Или, может быть, перейти к защите авторизации, которая выглядит так
canActivate(route: ActivatedRouteSnapshot): boolean {
const taskId = route.params.taskId;
if (taskId) {
return true;
}
}
DocumentsTask(taskId) возвращает Observable