角度:无需页面更新即可重定向到另一个页面

时间:2018-08-10 09:06:42

标签: angular angular-ui-router

我有带有路径参数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']);
    }
}

3 个答案:

答案 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);

    }
}

示例:https://stackblitz.com/edit/angular-router-basic-example