首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Angular6等待app.component中的ngOnInit完成,然后在子触发器中执行ngOnInit

在Angular6中,可以通过使用ViewChild装饰器和AfterViewInit生命周期钩子来等待app.component中的ngOnInit完成,然后在子触发器中执行ngOnInit

首先,在子组件中引入ViewChildAfterViewInit

代码语言:txt
复制
import { Component, ViewChild, AfterViewInit } from '@angular/core';

然后,在子组件类中使用ViewChild装饰器来获取父组件的实例:

代码语言:txt
复制
export class ChildComponent implements AfterViewInit {
  @ViewChild(AppComponent) appComponent: AppComponent;
  
  ngAfterViewInit() {
    // 在这里可以访问父组件的方法和属性
    this.appComponent.ngOnInit();
  }
}

在上面的代码中,我们使用ViewChild装饰器来获取AppComponent的实例,并将其赋值给appComponent属性。然后,在ngAfterViewInit生命周期钩子中,我们可以访问父组件的方法和属性,包括ngOnInit方法。

这样,当父组件的ngOnInit方法完成后,子组件的ngAfterViewInit生命周期钩子会被触发,从而可以在子触发器中执行ngOnInit方法。

需要注意的是,为了确保父组件的ngOnInit方法已经完成,我们将子组件的逻辑放在ngAfterViewInit生命周期钩子中,而不是ngOnInit中。

关于Angular6的更多信息,您可以参考腾讯云的相关产品和文档:

请注意,以上链接仅供参考,具体产品和文档可能会有更新和变动。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Angular练习之animations动画

让我们隆重介绍Angular动画。Angular是基于最新的Web Animations API,我们使用动画触发器(animation triggers)来定义一系列状态和变换属性。我们也可以用CSS样式来改写实现我们想要的效果 主要的原则是开始和结尾的动画样式由我们自定义,中间变换的计算过程交给工具本身 当然,可以通过设置时间来设置中间动画,比如1s,1.2s,200ms。其他的就是大家熟悉的CSS动画的速度属性比如ease、liner和ease-in-out。 而Angular 4.2以上的版本里我们可以用顺序(sequence)和组合(group)来让动画一个接一个执行还是同时执行;查询(query)可以操作子元素而交错(stagger)可以创造一个很棒的连锁效果。 这些事件将触发一个动画: 向或者从视图里装载或者卸载一个元素 改变已绑定触发器的状态 比如:[@routerTransition]="home" 在路由转换的前后关系中,要注意,组件正在被移除并作为导航的一部分被添加到视图中的过程。

01
领券