相当于ngAfterViewInit,但对所有视图都是通用的

时间:2018-03-29 09:35:33

标签: javascript angular

当视图DOM很重时,有时会有一些时间来呈现它,尤其是在较旧的移动设备上。我想在没有渲染视图的时候放一个微调器。

我可以使用ngAfterViewInit钩子实现这一点,但是为每个视图执行它会提供大量重复的代码。

我想知道在完成当前视图的渲染时是否会触发全局钩子。

1 个答案:

答案 0 :(得分:1)

正如Jota在评论中提到的那样,你所要求的并不存在于角度。您可以做的事情(可能适合或不适合您的情况)是将一个微调器组件添加到应用程序的根目录(例如,在app.component.ts中)并创建一个可以打开或关闭它的服务。这样,在您的每个子组件中,您可以在ngOnInit中启用微调器并在ngAfterViewInit中将其关闭。

如果你使用Angular Router,另一个选择就是让这个微调器组件监听路由器事件:在NavigationStart打开并在NavigationEnd关闭。