Angular动画第一次能正常运行,但不会在后续调用中运行。
创始人
2024-10-24 13:01:39
0

这可能是由于使用了changeDetection策略'OnPush”的组件导致的。在这种情况下,动画只会在组件输入发生更改时重新计算,并在此基础上运行。因此,如果组件未检测到输入更改,则动画将不再运行。

要解决这个问题,请确保在组件中更改了输入,以通知Angular启动动画。您可以使用RxJs的行为主题来进行此操作。例如,您可以在组件中添加以下内容:

import { Component, OnInit, Input, ChangeDetectionStrategy } from '@angular/core'; import { BehaviorSubject } from 'rxjs';

@Component({ selector: 'app-my-component', templateUrl: './my-component.component.html', styleUrls: ['./my-component.component.css'], changeDetection: ChangeDetectionStrategy.OnPush }) export class MyComponentComponent implements OnInit { @Input() data: any; animationSubject = new BehaviorSubject(false);

constructor() { }

ngOnInit() { }

ngAfterViewInit() { this.animationSubject.next(true); }

triggerAnimation() { this.animationSubject.next(false); setTimeout(() => { this.animationSubject.next(true); }, 0); } }

此代码利用了RxJs的行为主题,每次更改数据输入时都会通知更改检测。此外,在调用动画时,我们将先将主题设置为false,然后立即将其重置为true以重新计算动画。

相关内容

热门资讯

黑科技攻略!wepoker辅助... 黑科技攻略!wepoker辅助器怎么弄,德普之星透视软件免费入口官网,总是确实有挂(有挂细节)1、任...
最新技巧!微乐小程序黑科技,湖... 最新技巧!微乐小程序黑科技,湖北逍遥卡五星辅助,详细工具(有挂讲解)1、金币登录送、破产送、升级送、...
出乎意料的是!aapoker怎... 出乎意料的是!aapoker怎么选牌,德普之星透视,原来真的是有挂(有挂秘诀)亲,关键说明,德普之星...
攻略讲解!泉州相约十三水辅助,... 攻略讲解!泉州相约十三水辅助,上饶打炸辅助,详细工具(了解有挂)1、打开软件启动之后找到中间准星的标...
这一问题亟待解决!hhpoke... 这一问题亟待解决!hhpoker真能买到挂吗,智星德州插件2024最新版,总是是真的有挂(竟然有挂)...
重大科普!打哈儿床将作弊,谁有... 重大科普!打哈儿床将作弊,谁有老友广东辅助器,详细脚本(有挂存在)1、进入到谁有老友广东辅助器是否有...
为了进一步!菠萝德州透视脚本,... 为了进一步!菠萝德州透视脚本,德扑之星透视免费,确实存在有挂(确实有挂)1、用户打开应用后不用登录就...
一分钟了解!闲来辅助平台,杭州... 一分钟了解!闲来辅助平台,杭州都莱游戏辅助,详细挂(存在有挂)1、首先打开杭州都莱游戏辅助辅助器下载...
记者获悉!wejoker辅助器... 记者获悉!wejoker辅助器怎么卖,德扑之星透视免费,都是真的是有挂(讲解有挂)德扑之星透视免费是...
推荐一款!腾威互娱 辅助工具,... 推荐一款!腾威互娱 辅助工具,九游辅助插件,详细脚本(竟然有挂)1、打开软件启动之后找到中间准星的标...