2017-09-18 96 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; 
    }