我有两个有父母和子女关系的组件。父组件的ngOnInit方法检查用户是否已登录,如果未登录,则导航到登录页面。
class ParentComponent implements OnInit{
ngOnInit(){
if(!authService.loggedIn){
//navigate to login screen code
return;
}
}
}
class ChildComponent implements OnInit{
ngOnInit(){
/** POINT TO BE NOTED **/
// this function is also called even if ngOnInit
// of parent navigates to different component and returns.
// do some stuff with userService.token
// but because token isn't available the calls fail
}
}
如果父组件想要导航到其他组件,如何阻止此级联OnInit调用?
答案 0 :(得分:4)
IMO,您不应该检查用户是否已登录并离开组件。您应该使用guard来执行此操作。
但是,要回答你的问题,你可以使用
<child *ngIf="isLoggedIn()"></child>
如果用户未登录,则会阻止创建子组件。