我一直对我可能认为是 Angular 4 中动画模块中的错误感到困惑。使用 Angular 2.x 中的动画,我制作了一个从高度 * 到固定高度的动画。这在 Angular 2 中工作得非常好。另一方面,当使用 Angular 4 时,在动画完成之前重新触发动画时,应用了动画的元素的高度会出现问题。通配符 (*) 高度似乎是导致问题的原因。这是一个可以重现该问题的演示片段。如果您在元素处于 *-height 状态时双击该元素,则会触发该错误:
import { Component } from '@angular/core';
import { trigger, animate, state, transition, style } from '@angular/animations';
@Component({
selector: 'app-root',
template: `
<h1 [@toggleAnimation]="isEnabled" (click)="isEnabled = isEnabled === 'active' ? 'inactive' : 'active'" style="background: blue">
{{title}}
</h1>`,
animations:
[
trigger('toggleAnimation', [
state('active', style({
height: '*',
})),
state('inactive', style({
height: '600px',
})),
transition('active <=> inactive', animate('500ms ease-in-out'))
])
]
})
export class AppComponent {
title = 'app works!';
isEnabled = 'inactive';
}
我如何使用通配符值设置高度动画是否有问题,或者通配符高度的行为方式是否有问题?