在Angular中使用"*ngIf"时避免延迟



我有四个选项卡,第四个选项卡需要根据是否存在API响应来显示。所以我使用以下代码。

<li *ngIf="notifications.length !=0">
<a data-toggle="tab">Notifications</a>
</li>

因此,问题是,如果存在通知响应,则在显示Notifications选项卡之前会有延迟。首先渲染其他选项卡,然后在稍有延迟后渲染通知选项卡。如何避免这种延迟,并在页面加载时显示所有四个选项卡?

您可以使用路由解析器来访问带有选项卡的页面。

解析器允许在允许导航到特定路线之前等待承诺/可观察到的内容完成。使用API响应调用作为可观察的完成,您将能够等待调用完成来加载组件。

这将导致延迟显示您的页面;当页面解析路由时,您可能希望在页面上实现一个加载器或类似的东西。

以下是一篇文章,其中包含有关解析器的示例:https://alligator.io/angular/route-resolvers/