javascript - 与 ngOnInit() 和 ngAfterContentInit() 混淆

标签 javascript angular

我是 Angular 的新手,如果我的问题听起来很愚蠢,我深表歉意。我总是混淆 ngOnInit() 和 ngAfterContentInit() 生命周期钩子(Hook)。在官方文档中,它说:

ngOnInit():在 Angular 首次显示数据绑定(bind)属性并设置指令/组件的输入属性后初始化指令/组件。

ngAfterContentInit():在 Angular 将外部内容转换到组件的 View /指令所在的 View 后做出响应。

我的问题是:

Q1-对于 ngOnInit()Initialize the directive/component after Angular first display the data-bound properties 是什么意思? “初始化”是否意味着创建指令/组件的实例?

Q2-对于 ngAfterContentInit(),组件的 View 是什么意思? View 是否表示组件的 templateUrl 中关联的模板 html?

最佳答案

Q1:不是,类实例的创建是方法constructor发生在 ngOnInit() 之前,一个组件是一个带有模板的指令data-bound properties ,查看节点等。和 ngOnInit() 在数据绑定(bind)属性准备就绪后调用,如您所知, ngAfterViewInit() 在 View 就绪后调用。

Q2:“内容”的含义有一个例子:

您在 app.component.html 中定义了一个组件选择器里面有一段文字:

<custom-component>
   Some random text
</custom-component>

现在里面custom-component.component.hml您可以使用 <ng-content></ng-content> 显示文本“一些随机文本”它充当您传递的文本的占位符

<ng-content></ng-content>

ngAfterContentInit()只是意味着将“一些随机文本”传递给 custom-component.component.hml查看完成。

关于javascript - 与 ngOnInit() 和 ngAfterContentInit() 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58722877/

相关文章:

javascript - 获取消息函数的 setInterval 问题

php - 确认删除不起作用

validation - 带参数的 Angular 2 自定义验证器

javascript - 与页面上的元素交互时防止滑动事件

javascript - 如何对数组中的项目进行减去

javascript - Angular.js 和 Node.js - 通过 Controller 将输入变量传递到 server.js

angular - 使用 firebase 在应用程序中路由无法正常工作

angular - Protractor :如何等待 findElements?

angular - 如何确定 Ionic 的评级值?

Angular 2 - 作为 NgModule 的服务不必声明所有提供者?