【发布时间】:2021-03-09 21:23:47
【问题描述】:
我正在尝试选择角度组件中的所有 pre 元素AFTER文档已加载。
ngAFterViewChecked, ngAfterContentChecked, ngAfterContentInit 基本上在文档加载之前运行 30 次,这会降低我的应用程序的速度。
所以,剩下的就是 ngAfterViewInit,逻辑上人们会认为它会起作用,但由于文档尚未加载,它什么也没做。所以,我在想一个事件监听器,就像在 vanilla js 中一样。
constructor(
@Inject(DOCUMENT) private document: Document,
private renderer: Renderer2
) { }
ngAfterViewInit(): void {
this.renderer.listen('document', 'load', (event) => {
console.log("loaded")
const pres = this.document.querySelectorAll('pre');
for (var i = 0; i < pres.length; ++i) {
console.log("Yes!");
}
});
}
这没有按预期工作,但我还没有看到任何其他方法完全尝试这种方式,所以我认为类似的方法可以工作。
注意:我的pre标签是从[innerHTML]="content"中的数据库异步加载的。
有什么想法吗?
【问题讨论】:
标签: angular events angular10 queryselector angular-renderer2