首页
学习
活动
专区
工具
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 从入坑到挖坑 - 组件食用指南

@Input 用来获取数据,@Output 用来向外发送数据 4.4.2、组件获取父组件信息 父组件,添加对于组件引用,并将需要传递数据 or 方法绑定到组件上 传递数据直接将父组件属性值赋值给绑定在组件上属性就可以了...传递方法时,绑定在组件上属性是父组件方法名称,此处不能加 () ,否则就会直接执行该父组件方法 传递数据给组件时,也可以通过 this 来指代父组件,从而将整个父组件作为数据绑定子组件上...使用 @Output 装饰器配合 EventEmitter 实现 组件引入 Output 和 EventEmitter,通过 @Output 装饰器定义一个事件触发器然后就可以通过这个事件触发器...组件中使用服务 需要使用组件引入服务,然后组件构造函数通过依赖注入方式注入这个服务,就可以组件完成对于这个服务使用 父组件对数据进行赋值,然后调用服务方法改变数据信息...组件加载过程,会按照上面列出钩子函数顺序,组件构造函数执行之后依次执行页面加载过程中会涉及绑定数据操作,因此会再次出发 ngDoCheck、ngAfterContentChecked

15.8K30

AngularDart 4.0 高级-生命周期钩子 顶

间谍ngOnDestroy方法报告其最后时刻。 ngOnInit和ngOnDestroy方法实际应用扮演更重要角色。...OnInit 使用ngOnInit有两个主要原因: 施工后不久执行复杂初始化 Angular设置输入属性后设置组件 有经验开发人员同意组件应该便于构建且安全。...这一次,它不是模板包含视图,而是从AfterContentComponent父项导入内容。 这是父母模板。...关键区别在于组件 AfterView钩子涉及ViewChildren,组件元素标签出现在组件模板。...回想一下,调用AfterView钩子之前,Angular调用了AfterContent两个钩子。 完成该组件视图之前,Angular会完成投影内容组合。

6.2K10

Angular 从入坑到挖坑 - 表单控件概览

将数据值和一些对于用户行为约束(某个字段必须填啊、某个字段长度超过了长度限制啊)绑定到组件模板,从而完成与用户交互 4.2.1、模板驱动表单双向数据绑定 根模块引入 FormsModule...4.3.2、通过 FomGroup 组合多个控件 一个表单不可能只有一个控件,通过组件构造 FormGroup 实例来完成对于多个表单控件统一管理 使用 FormGroup 时,同样组件定义一个属性用来承载控件组实例...(): void { } } 视图模板,将承接 FormGroup 实例属性通过 formGroup 指令绑定到 form 元素,然后将控件组每一个属性通过 formControlName...模板驱动表单,因为不是直接使用 FormControl 实例,因此这里应该在模板上添加一个自定义指令来完成对于控件数据校验 使用 angular cli 创建一个用来进行表单验证指令 ng...ngOnInit(): void { } } 针对多个字段进行交叉验证时,模板页面,则需要通过获取整个表单错误对象信息来获取到交叉验证错误信息 <div class="form-group

18.9K20

Angular2 -- 生命周期钩子

比如,OnInit接口钩子方法叫做ngOnInit。 指令和组件 ngOnInit:当Angular初始化完成数据绑定输入属性后,用来初始化指令或者组件。...ngDoCheck:用来检测所有变化(无论是Angular本身能检测还是无法检测),并作出相应行动。每次执行“变更检测”时被调用。...生命周期顺序 ngOnChanges:当被绑定输入属性值发生变化时调用,首次调用一定会发生在ngOnInit之前。 ngOnInit第一轮ngOnChanges完成之后调用。...ngAfterContentChecked:每次完成被投影组件内容变更检测之后调用。 ngAfterViewInit:初始化完组件及其视图之后调用。...ngAfterViewChecked:每次做完组件视图和视图变更检测之后调用。 ngOnDestroy:当Angular每次销毁指令/组件之前调用。

75720

Angular constructor vs ngOnInit

Angular 学习过程,相信很多初学者对 constructor 和 ngOnInit 应用场景和区别会存在困惑,本文我们会通过实际例子,为读者一步步解开困惑。...constructor ES6 中就引入了类,constructor(构造函数)是类特殊方法,主要用来做初始化操作,进行类实例化操作时,会被自动调用。...因为 ChildComponent 组件构造函数会优先执行,当 ChildComponent 组件输入属性变化时会自动触发 ngOnChanges 钩子,然后调用 ngOnInit 钩子方法,所以...constructor 应用场景 Angular ,构造函数一般用于依赖注入或执行一些简单初始化操作。...} } ngOnInit 应用场景 项目开发我们要尽量保持构造函数简单明了,让它只执行简单数据初始化操作,因此我们会把其他初始化操作放在 ngOnInit 钩子中去执行

1.4K20

Angular开发实践(五):深入解析变化监测

什么是变化监测 使用 Angular 进行开发,我们常用到 Angular 绑定——模型到视图输入绑定、视图到模型输出绑定以及视图与模型双向绑定。...这个时机是由 NgZone 这个服务去掌控,它获取到了整个应用执行上下文,能够对相关异步事件发生、完成或者异常等进行捕获,然后驱动 Angular 变化监测机制执行。...变化监测处理机制 通过上面的介绍,我们大致明白了变化检测是如何被触发,那么 Angular 变化监测是如何执行呢?...当我们点击 DemoParentComponent button 时,会回调到 changeVal 方法,然后会触发变化监测执行,变化监测流程如下: 首先变化检测从 DemoParentComponent...reattach():把分离变化监测器重新安装上,使得该组件及其组件都能执行变化监测。 detectChanges():手动触发执行该组件到各个子组件一次变化监测。

1.7K80

angular知识点梳理第三篇-组件

声明一个变量 【parent.component.ts】 第二步:父组件html视图层文件引入组件 【parent.component.html】 第三步:组件ts文件中使用@Input...:父组件ts文件引入viewchild模块 【parent.component.ts】 方案二:通过@Output触发父组件方法 第一步:组件ts文件引入angular核心模块output...当然上面是传递数据,其实方法也是可以进行传递,上面的demo,组件执行父组件方法也有对应代码实现!...()"> 执行组件childfunc方法 第二步:组件声明一些需要传递变量 【children.component.ts】 //这里我们需要引入angular核心模块Input...方案二:通过@Output触发父组件方法 这个方式就是同归广播方式进行触发函数,将组件数据主动传递到父组件中去 第一步:组件ts文件引入angular核心模块output和EventEmitter

2.2K10

Angular 组件通信

那么, Angular 开发,其组件之间通信是怎么样呢? 举一反三,Vue 和 React 中大同小异 本文纯文字,比较枯燥。...> 父组件调用组件,这里命名一个 parentProp 属性。...是因为我们组件初始化后就进行了 emit,这里异步操作是防止 Race Condition 竞争出错。 我们还得组件添加 fromChild 这个方法,如下: <!...通过引用,父组件获取组件属性和方法 我们通过操纵引用方式,获取组件对象,然后对其属性和方法进行访问。...所以父子组件,一进来就会打印 msg 初始值 null,然后过了一秒钟之后,就会打印更改值 Jimmy。同理,如果你组件对服务信息,组件打印相关同时,父组件也会打印。

1.9K20

angular面试题及答案_angular面试

:angular初始化组件及其组件视图之后调用,只调用一次,只适用于组件 ngAfterViewChecked:每次做完组件视图和视图变更检测之后调用,只适用于组件 ngOnDestroy:...Constructor 和 ngOnInit 本质区别 Constructor ES6 constructor表示构造函数,使用在class。来初始化操作。...当类被初始化之后,构造函数会被调用 ngOnInit ngOnInit 是angularOnInit钩子实现,用来初始化组件。...ngOnInit : angular 第一次显示数据绑定和设置指令、组件输入属性之后,初始化指令、组件 所以从angular生命周期看,constructor是执行在先 所以既然ngOnchanges...是输入属性发生变化时候调用,并且ngOnInitngOnchanges执行之后才调用,而constructor是组件实例化时候就调用了,也就是说,constructor是取不到输入属性

10.9K120

【Angular教程】-组件通信|8月更文挑战

(click)="header.printName()">调用组件函数 第4步是父组件html模板中进行操作,有时候我们还需要在父组件ts类对子组件进行操作,我们接下来接着演示...: HeaderComponent; // 声明周期钩子: 组件及组件视图更新后调用,执行一次 ngAfterViewInit(): void { // 调用组件属性 console.log...以上步骤实现了父组件数据传递到了组件,那么我们接着来看组件数据怎么传递到父组件呢?...(); title组件ts类定时派发数据 ngOnInit(): void { // 定时将组件数据进行派发 setInterval(() => { this.titleChange.emit...title组件ngOnInit()钩子中保存title到localstorage: window.localStorage.setItem('title', this.title); button

43130

RxJS 处理多个Http请求

处理多个请求有多种方式,使用串行或并行方式。 基础知识 mergeMap mergeMap 操作符用于从内部 Observable 对象获取值,然后返回给父级流对象。...forkJoin forkJoin 是 RxJS 版本 Promise.all(),即表示等到所有的 Observable 对象都完成后,才一次性返回值。...我们通过依赖注入方式注入 HttpClient 服务,然后 ngOnInit() 方法调用 http 对象 get() 方法来获取数据。...Map 和 Subscribe 有些时候,当我们发送下一个请求时,需要依赖于上一个请求数据。即我们需要在上一个请求回调函数获取相应数据,然后发起另一个 HTTP 请求。...如果你熟悉 Promises 的话,该操作符与 Promise.all() 实现功能类似。forkJoin 操作符接收一个 Observable 对象列表,然后并行地执行它们。

5.7K20

从 Angular Route 中提前获取数据

\n\n通常,我们都会在组件 ngOnInit() 钩子函数获取数据。也就是说,组件加载完之后,我们发起数据请求。...\n\n ngOnInit() 操作,我们需要在每个需要组件加载后,在其路由页面添加 loader 展示。Resolver 可以简化 loader 添加使用。...\n\nloader 通常是 ngOnInit() 编写所有的 AJAX 请求,但是逻辑将会在 resolver 实现,替代 ngOnInit()。...\n\n接着,创建一个服务来获取 JSONPlaceholder 列表数据。然后 resolver 底调用,接着路由中配置 resolve信息,(页面将会等待)直到 resolver 被处理。... resolver 被处理之后,我们可以通过路由来获取数据然后展示组件

6.2K30

Rxjs&Angular-退订可观察对象n种方式

为了避免内存泄漏,适当时机对可观察对象进行退订是非常重要; 本文会向你展示各种angular组件退订可观察对象方法!...方式一 "常规"取消订阅方式 最简单订阅和取消订阅一个可观察对象方式是 ngOnInit 方法订阅可观察对象(Observable), 然后组件类创建一个类属性用来保存这个订阅(Subscription...首先, 组件类中使用new Subscription()实例化创建一个字段, 然后调用该实例 Subscription.add 方法, 最后 ngOnDestroy 取消订阅....我们只需管道中加入 takeUntil(componentDestroyed$) 即可, 剩下RxJS会帮我们完成....然后组件类创建一个SubSink类型字段. SubSink有两种方式, 一种是简单技术(使用sink属性设置器), 另一种是 数组/添加(Array/Add)技术.

1.2K00

详解ANGULAR2组件变化检测机制(对比ANGULAR1脏检测)

因此执行变化检测时 ParentComponent 组件 name 属性,会传递到 ChildComponent 组件输入属性 text 。...变化检测策略 Angular 2 我们可以定义组件 metadata 信息时,设定每个组件变化检测策略。...person 对象,然后修改 person 对象 name 属性,最终输出修改后 name 属性。...reattach() - 重新添加已分离变化检测器,使得该组件及其组件都能执行变化检测 detectChanges() - 从该组件到各个子组件执行一次变化检测 接下来我们先来看一下 markForCheck...我们看到 ngOnInit 钩子,我们通过 setInterval 定时器,每隔一秒钟更新计数值同时调用 ChangeDetectorRef 对象上 markForCheck() 方法,来标识该组件在下一个变化检测周期

2.9K90
领券