我在我的网站上有一个按钮,当我点击它时,会发生以下情况:
<div class="btn" (click)="toggleStatus=!toggleStatus;>
<i class="fa-regular fa-plus" *ngIf="!toggleStatus"></i>
<i class="fa-regular fa-minus" *ngIf="toggleStatus"></i>
</div>到目前一切尚好。非常简单,它只是根据toggleStatus改变按钮内的图标。然而,当点击这个按钮时,在我的网站上发生了一些其他的事情,包括一些动画。至少在返回到默认状态时,我需要图标不是立即出现,而是在几秒钟后出现,这将与其他动画完美匹配。
有没有什么方法可以延迟这个*ngIf更改,或者这是一项很大的工作?
发布于 2021-03-14 05:21:16
解决方案1
当toggleStatus将被更改时,使用固定时间的setTimeout。不过,这似乎不是最佳实践。
解决方案2
如果使用角度动画,则在动画完成后会触发一个事件。
请在此处查看通告完成事件documentation
然后,您可以接收该事件,并使用eventEmmiter提交一个值。如果您其他组件侦听发射器上的更改(已订阅),则可以更改toggleStatus的值。这样,您可以确保toggleStatus在动画完成时直接更改。
如果您提供有关您的问题的更多信息,我将能够为您提供更多帮助。
https://stackoverflow.com/questions/66618403
复制相似问题