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

Den*_*itz 2 angular2-routing angular

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

这是我的代码:

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

//OR

ngOnInit() {
  this.router.navigate(['/']);
}
Run Code Online (Sandbox Code Playgroud)

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

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

ale*_*nko 5

您应该实现canActivate 防护以防止视图呈现并在 canActivate 中重定向您想要的位置。

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