提问者:小点点

角度动画会在每个动作上不断重启


我试图在一个角度项目的列表上做一个缩放动画; 但是,我需要的是,只有在按下屏幕上的某些按钮时,动画才会被触发,(如视频中所示的红色和绿色按钮)。

现在,无论我点击什么,动画重新开始,有人知道问题出在哪里吗?

打字脚本代码:

  animations: [
    trigger('enableDisable', [
    state('void', style({
    transform: 'scaleY(0)'
  })),
    state('*', style({
    transform: 'scaleY(1)'
  })),
    transition('void => *', animate(200))
])

]

HTML代码:

  <div
    [@enableDisable]
    (click)="onSelect(item)" *ngFor="let item of itemList">
    <app-item-task [item]="item"></app-item-task>
  </div>

我上传了一个演示这个问题的视频,很抱歉视频的质量,我不得不降低它:动画问题视频

谢谢!


共1个答案

匿名用户

为您的ngFor添加跟踪功能,如下所示

*ngFor="let item of itemList; trackBy: trackById"
trackById(index, item) { 
  return item.id;
}

如果您没有任何东西指定您的项目,您可以尝试只返回索引。 当它被添加时,ngFor不呈现新元素,而是在不需要时重用旧元素