考虑以下html:
<html>
<body>
<app-header></app-header>
<app-footer></app-footer>
</body>
</html>如果我使用app-footer钩子ngAfterViewInit()将一个脚本附加到包含处理app-header组件中的元素的jQuery的html中,那么会工作吗?
与app-header钩子相比,什么时候执行ngAfterViewInit()?
会先执行吗?异步?
发布于 2019-11-20 01:08:31
首先,我认为在多个组件中依赖于生命周期方法的执行顺序和时间是不明智的,因为这个顺序和时间并不是预先设定的。
即使在您的开发环境中可以这样工作,也不太可能在其他客户端、在所有浏览器上以及在未来版本的Angular上都这样工作。
简单地依赖父组件的afterViewInit生命周期方法会安全得多,在此方法期间,将保证两个子组件将被初始化。
其次,我认为通常建议不要直接访问DOM,而是通过Renderer进行访问。使用jQuery违反了该建议。您可能应该寻找一种特定角度的方法来完成您需要的事情,而不是使用jQuery。
https://stackoverflow.com/questions/58944511
复制相似问题