Angular 更改或添加行时设置行动画
我试图在添加或更改mat表中的行时设置其动画。我有以下动画:Angular 更改或添加行时设置行动画,angular,angular-material,angular-animations,Angular,Angular Material,Angular Animations,我试图在添加或更改mat表中的行时设置其动画。我有以下动画: import { animate, keyframes, sequence, style, transition, trigger } from '@angular/animations'; export const rowUpdate = trigger('rowUpdate', [ transition('void => *', animate('5000ms', keyframes([ style
import { animate, keyframes, sequence, style, transition, trigger } from '@angular/animations';
export const rowUpdate =
trigger('rowUpdate', [
transition('void => *', animate('5000ms', keyframes([
style({backgroundColor: 'initial', boxShadow: 'none', offset: 0} ),
style({backgroundColor: 'red', boxShadow: '0 0 5px red', offset: 0.1} ),
style({backgroundColor: 'initial', boxShadow: 'none', offset: 1} ),
])))
]);
我称之为HTML:
<tr mat-row *matRowDef="let row; columns: displayedColumns;" [@rowUpdate]="">
当我更改或更新一行时,它会正常工作,问题是我可以隐藏/显示列,当我添加一个新列时,所有表都会高亮显示,我希望这只在我添加/更改行时发生,而不是在我添加新列时发生
你知道我该怎么控制吗
编辑1:我已尝试此解决方案以:
但我还有一个问题,当我对表格排序时,动画再次出现,我不想要它。我已尝试删除该类,但无法删除。请参阅中的
trackBy
。它允许告诉mat table哪些行已经被删除drawn@Andrei我怎么能这样做?我从来没有在你的组件上使用过这个trackBy.writetrackByItem(index:number,item:any){return item;}
和bind
@Andrei是的,我知道这一点,但是当我添加一个新列时,我如何防止动画呢?我测量了动画的发生,因为angular不知道它是新的还是旧的。如果这不是需要进一步调查的原因,请参阅中的trackBy
。它允许告诉mat table哪些行已经被删除drawn@Andrei我怎么能这样做?我从来没有在你的组件上使用过这个trackBy.writetrackByItem(index:number,item:any){return item;}
和bind
@Andrei是的,我知道这一点,但是当我添加一个新列时,我如何防止动画呢?我测量了动画的发生,因为angular不知道它是新的还是旧的。如果这不是需要进一步调查的原因