0

我有两个具有父子关系的组件。父组件的 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 调用?

4

1 回答 1

4

IMO,您不应检查用户是否已登录并离开组件。你应该使用警卫来做到这一点。

但是,要回答您的问题,您可以使用

<child *ngIf="isLoggedIn()"></child>

如果用户未登录,这将阻止创建子组件。

于 2017-05-08T21:01:52.400 回答