我有一个这样的解析器:
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