8

我一直对我可能认为是 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';
}

我如何使用通配符值设置高度动画是否有问题,或者通配符高度的行为方式是否有问题?

4

1 回答 1

4

似乎是一个错误:https ://github.com/angular/angular/issues/15507

显然!是一个“秘密”值,4.2.0-rc.1它似乎可以解决这个问题,但这似乎不是官方支持或将在官方版本中支持的东西。

https://plnkr.co/edit/pZamSqPX9Vb4J6JL721u?p=preview显示它4.2.0-rc.1与 一起工作!,然后转到config.js并更改为4.0.0并更改!回以*查看它是如何再次出现故障的。

于 2017-06-04T08:37:23.983 回答