首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重装DOMContent

重装DOMContent
EN

Stack Overflow用户
提问于 2018-09-04 09:21:26
回答 4查看 343关注 0票数 0

我理解角是一个包含多个组件的页面应用程序,并使用路由在页面之间进行交互。

我们有一个这样的角度应用程序。其中一个要求是,在特定组件上,我们需要将eventListener添加到DomContentLoaded事件中。

由于index.html页面之前已经加载(因此DomContentLoaded事件被触发),所以我们遇到了一个问题。

我找不到重新触发DomContentLoaded事件的方法。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-09-04 09:30:22

在创建第一个组件之前触发的DomContentLoaded事件。但是,您可以使用ngAfterViewInit()方法。ngAfterViewInit()是一个回调方法,它在角已经完成组件视图的初始化之后立即调用。在实例化视图时只调用一次。

代码语言:javascript
复制
class YourComponent {
    ngAfterViewInit() {
        // Your code here
    }
}

如果您确实需要捕获DomContentLoaded事件,请在main.ts文件中执行它。

票数 0
EN

Stack Overflow用户

发布于 2018-09-04 09:29:14

我不知道,为什么你需要听DomContentLoaded的角度,因为那里有很多函数,这取决于你使用的是哪个版本的角。

代码语言:javascript
复制
export class SomeComponent implements AfterViewInit {
 ngAfterViewInit(): void {
 }

}

但是,您可以使用*ngIf (Angular2+)或ng-if (AngularJS)重新触发组件的呈现。只需在那里放置一个布尔值,并在事件上切换布尔值即可。

票数 0
EN

Stack Overflow用户

发布于 2018-09-04 09:29:25

请不要使用这样的听者,他们(经常)是不需要的角。尝试使用组件生命周期挂钩

在您的示例中,我建议使用ngAfterViewChecked(),它在组件完成呈现时触发。

代码语言:javascript
复制
import { Component, AfterViewChecked } from '@angular/core';

@Component({
  ...
})
export class WidgetLgFunnelsComponent implements AfterViewChecked {
  ngAfterViewChecked() {
    console.log('Component finished rendering!')
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52162970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档