首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免级联ngOnInit?

如何避免级联ngOnInit?
EN

Stack Overflow用户
提问于 2017-05-08 20:49:29
回答 1查看 275关注 0票数 0

我有两个组成部分,父母和孩子的关系。父组件的ngOnInit方法检查用户是否已登录,是否未登录,是否导航到登录页面。

代码语言:javascript
复制
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调用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-08 21:01:52

IMO,您不应该检查用户是否已登录并从组件中导航。相反,您应该使用一个守卫来完成这个任务。

但是,为了回答你的问题,你可以用

代码语言:javascript
复制
<child *ngIf="isLoggedIn()"></child>

这将防止在用户未登录时创建子组件。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43857040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档