Angular4,在渲染视图之前重定向?

时间:2017-09-18 13:14:19

标签: angular angular2-routing

如何在渲染视图之前重定向?

这是我的代码:

constructor(private router: Router) {
  if (/* some condition*/) {
    window.history.back();
  }
}

//OR

ngOnInit() {
  this.router.navigate(['/']);
}

当前代码是在重定向之前显示视图吗?

如何在渲染视图之前重定向?

1 个答案:

答案 0 :(得分:4)

您应该实施canActivate guard以阻止视图呈现,并在canActivate重定向到您想要的位置。

 canActivate(
    route: ActivatedRouteSnapshot,
    state: RouterStateSnapshot
  ): Observable<boolean>|Promise<boolean>|boolean {
     if (condition) {
        this.navigate([somewhere]);
      }
      return true;
  }