2018-08-30

2018-08-30  本文已影响0人  奔跑的超级西红柿

Angular4加载顺序

今天遇到了一个比较关于angular4加载组件顺序的坑,当我在app.component.ts文件里引入了自己的一个angular服务的时候,在执行ngOnInit的时候,我发送了一个自己定义的事件给项目里的其他组件,但是对应的组件在订阅我的事件的时候却没有接收到。我又在页面内加了一个a标签,并且加上click事件,发现在事件的回调函数里发送事件的时候,其他组件就能接收到了,这是因为angular4的组件是有加载顺序的,都是先加载app.component这个组件,再加载其他组件,所以再app.component.ts初始化完成加载完成的时候,事件发出了,对应的接收组件还没有加载完毕,所以接收不到对应发出的事件。在询问了大神之后发现除了ngOnInit这个声明周期函数,还有一个ngAfterViewInit生命周期函数,是在初始化完组件视图及其子视图之后调用。因此在这个函数内发出事件就可以让其他组件接收到事件了

上一篇下一篇

猜你喜欢

热点阅读