2017-09-18 111 views
1

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

这是我的代码:

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

 
//OR 
 

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

当前的代码是显示视图重定向过吗?

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

回答

2

您应该实施canActivate guard以防止渲染以及canActivate重定向到您想要的位置。

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