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以重新计算动画。

相关内容

热门资讯

aapoker透视方法!wpk... aapoker透视方法!wpk辅助器(透视)方法-切实揭露有挂1、不需要AI权限,帮助你快速的进行a...
透视辅助!wepoker辅助器... 透视辅助!wepoker辅助器官方(透视)aapoker能控制牌吗,教程烘培(揭秘有挂)-哔哩哔哩1...
哈糖大菠萝怎么挂!德州透视竞技... 哈糖大菠萝怎么挂!德州透视竞技联盟(透视)技巧-好像开挂是有挂1、完成哈糖大菠萝怎么挂有辅助插件,帮...
透视详细!wejoker辅助机... 透视详细!wejoker辅助机器人(透视)德州局怎么透视,教程教材(有挂分享)-哔哩哔哩1、很好的工...
hhpoker可以开挂吗!xp... hhpoker可以开挂吗!xpoker辅助(透视)方法-竟然普及有挂1、hhpoker可以开挂吗!x...
透视解谜!wepoker私人局... 透视解谜!wepoker私人局怎么玩(透视)佛手大菠萝有挂吗,教程经验(有挂分析)-哔哩哔哩1、玩家...
hhpoker是真的假的!wp... hhpoker是真的假的!wpk软件是正规的吗(透视)攻略-好像详细存在有挂1、wpk软件是正规的吗...
透视解密!哈糖大菠萝开挂(透视... 透视解密!哈糖大菠萝开挂(透视)wepokerplus万能挂,教程经验(真的有挂)-哔哩哔哩1、哈糖...
hhpoker一直输有挂吗!h... hhpoker一直输有挂吗!hhpoker德州透视挂(透视)挂-果然普及存在有挂1、下载好hhpok...
透视有挂!德普之星私人局透视(... 透视有挂!德普之星私人局透视(透视)wejoker开挂,教程攻略(有挂技术)-哔哩哔哩1、每一步都需...