加载子组件之前的角度DOM更新问题



在加载子组件之前,我正在尝试启动一个加载程序(微调器(。我正在设置加载程序div的可见性,以便在按钮的点击操作时显示块。并尝试在子组件加载完成后停止加载程序,即在子组件的ngAfterViewInit中。

但加载器永远不会被渲染。

这不仅仅是关于加载器,如果您在点击按钮时更新任何DOM属性,它就不会在UI中更新。

我认为我的应用程序中有一些问题,所以从angular.io中取了一个例子,并用所需的加载器更新了它。尽管如此,它的行为还是一样的。

英雄之旅的游乐场是堆叠在一起的。

我还发现了ngAfterViewInit的一个错误,但它在NativeScript存储库中,所以我希望angular团队并没有注意到它。

请告诉我,对于这类情况,更新DOM的正确方法是什么,或者如果这是angular的问题,我将向他们提出。

在stackblitz游乐场中,我在ngAfterViewInit中放置了一个警报,以确定加载程序内容是否可见,实际上,如果我在本地运行该项目,firefox将显示带有警报的加载程序,在删除已设置的firefox后,也无法显示加载程序。

代码流:仪表板是具有加载程序div的组件,并单击事件来启动加载程序。hero细节组件的ngAfterViewInit正在发出一个事件来停止加载程序。

尝试使用"隐藏的";而不是ngIF([hidden]="heroDetail"(。简而言之,ngIf将从DOM中添加或删除元素,那么DOM事件将不会像您预期的那样被跟踪。Hidden将通过CSS隐藏或显示元素,保留其所有事件侦听器。

您可以在以下位置阅读更多信息:

https://www.angularjswiki.com/angular/difference-between-ngif-and-hidden-or-displaynone-in-angular/

最新更新