繁体   English   中英

什么时候调用Angular2 ngAfterViewInit?

[英]When does Angular2 ngAfterViewInit get called?

在我的Angular组件视图初始化为将数值转换为星形后,我需要运行一些jQuery代码。

我把代码放在ngAfterViewInit函数中,但它没有做我需要的东西。 我在函数中设置了一个断点,我发现在调用ngAfterViewInit函数时,我的组件的大部分HTML都没有加载。 未加载的部分使用* ngFor指令生成。

在该指令生成了我需要操作的所有html之后,如何让我的代码运行?

当我依赖DOM准备好时,我一直在使用ngAfterViewChecked。

import {Component, AfterViewChecked} from '@angular/core'; 

export class Spreadsheet implements AfterViewChecked{

   ngAfterViewChecked(){

   }
}

什么时候调用ngAfterViewInit?

应在组件的视图及其子视图之后调用ngAfterViewInit() 我对此进行了测试,发现孩子的ngAfterViewInit()是在父的ngAfterViewInit()之前调用的。

当你说“我的组件的大多数HTML甚至没有加载”时,“加载”是什么意思? HTML组件的模板中是HTML,还是通过其他方式加载(或生成)?

在该指令生成了我需要操作的所有html之后,如何让我的代码运行?

查看指令代码会有所帮助。 如果指令以某种方式生成未包含在Angular模板中的HTML,那么您可能需要手动触发事件(例如,使用输出属性)以在呈现完成时通知父级。 或者您可以使用setTimeout() (但这不可靠)。

在我的Angular组件视图初始化为将数值转换为星形后,我需要运行一些jQuery代码。

你从哪里得到这些数值? 如果它们是从服务器动态加载的,则可以在数据到达时触发事件,并在该点更新视图。

另外,为什么不编写一个将数字作为输入属性并使用NgFor生成星号的NgFor

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM