我需要一些jQuery代码才能在我的Angular组件视图初始化后将数值转换为星号。
我将代码放在ngAfterViewInit函数中,但它没有按照我的需要进行操作。我在函数中设置了一个断点,我发现在调用ngAfterViewInit函数时,我的组件的大部分HTML都没有加载。未加载的部分使用* ngFor指令生成。
如果此指令生成了我需要操作的所有html后,如何让我的代码运行?
答案 0 :(得分:22)
当我依赖DOM准备好时,我一直在使用ngAfterViewChecked。
import {Component, AfterViewChecked} from '@angular/core';
export class Spreadsheet implements AfterViewChecked{
ngAfterViewChecked(){
}
}
答案 1 :(得分:22)
应在组件视图后调用什么时候调用ngAfterViewInit?
ngAfterViewInit()
,并创建其子视图。我对此进行了测试,发现孩子的ngAfterViewInit()
在父母ngAfterViewInit()
之前被调用。
当你说'#34;我的组件的大多数HTML甚至没有加载"时,你是什么意思"加载"? HTML组件的模板中是HTML,还是通过其他方式加载(或生成)?
如果此指令生成了我需要操作的所有html后,如何让我的代码运行?
查看指令代码会有所帮助。如果指令以某种方式生成未包含在Angular模板中的HTML,那么您可能需要手动触发事件(例如,使用输出属性)以在呈现完成时通知父级。或者您可以使用setTimeout()
(但这不可靠)。
我需要一些jQuery代码才能在我的Angular组件视图初始化后将数值转换为星号。
您从哪里获取这些数字值?如果它们是从服务器动态加载的,则可以在数据到达时触发事件,并在此时更新视图。
另外,为什么不编写一个将数字作为输入属性并使用NgFor
生成星号的组件?