我有带有路径参数ID的EditUserComponent。我想在ID无效时重定向到首页或错误页面,如何在不更新页面的情况下实现呢?目前,我已经有了这段代码,但是正在主页上重新加载。
constructor(private route: ActivatedRoute, private router: Router, private userService: UserService) {
this.route.params.subscribe(params => this.id = params.id);
if (!this.id || isNaN(this.id)) {
this.router.navigate(['/home']);
}
}
答案 0 :(得分:1)
使用路由对象的快照
this.id = this.route.snapshot.params["id"]
否则,您的if
条件始终返回true,或者您可以这样做:
this.route.params.subscribe(params => {
this.id = params.id;
if (!this.id || isNaN(this.id)) {
this.router.navigate(['/home']);
}
});
答案 1 :(得分:0)
我还没有看到您的路由器代码,但我想您在重定向路径中不需要使用斜杠
this.router.navigate(['home']);
答案 2 :(得分:0)
使用SetTimeOut
constructor(private route: ActivatedRoute, private router: Router, private userService: UserService) {
this.route.params.subscribe(params => this.id = params.id);
if (!this.id || isNaN(this.id)) {
setTimeout(()=>{ this.router.navigate(['/home']);},1000);
}
}