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

相关内容

热门资讯

透视解迷"wpk透视... 透视解迷"wpk透视是真的假的"一直有辅助软件(哔哩哔哩)1)wpk透视是真的假的有没有挂:进一步探...
透视普及"wpk有辅... 透视普及"wpk有辅助器吗"切实存在有辅助插件(哔哩哔哩)1.wpk有辅助器吗 选牌创建新账号,点击...
透视解迷"wejok... 透视解迷"wejoker私人辅助软件"原来是有辅助技巧(哔哩哔哩)该软件可以轻松地帮助玩家将wejo...
透视辅助"poker... 透视辅助"pokerworld辅助器"总是是有辅助软件(哔哩哔哩)1、pokerworld辅助器破解...
透视详情"wepok... 透视详情"wepoker怎么设置透视"真是是真的辅助教程(哔哩哔哩)1、首先打开wepoker怎么设...
透视必备"wepok... 透视必备"wepoker破解版内购"一直存在有辅助插件(哔哩哔哩)1、wepoker破解版内购公共底...
透视关于"wepok... 透视关于"wepoker私人局辅助挂"切实是真的辅助神器(哔哩哔哩)一、wepoker私人局辅助挂游...
透视关于"wepok... 透视关于"wepoker透视器免费"总是存在有辅助工具(哔哩哔哩)1、透视关于"wepoker透视器...
透视解谜"wepok... 透视解谜"wepoker挂"总是是有辅助脚本(哔哩哔哩)在进入wepoker挂软件靠谱后,参与本局比...
透视透视"wepok... 透视透视"wepoker手机版辅助"一直有辅助教程(哔哩哔哩)1、全新机制【wepoker手机版辅助...