![](/img/trans.png)
[英]Angular2 component styles/css not applied by browser in 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.