Подтвердить что ты не робот

Angular2 запустить анимацию в фильтре отпуска и наблюдения

У меня есть компонент, который можно анимировать при записи, как это, анимация записи работает нормально. Метод handleRemoval выполняется, и излучатель событий фильтрует компонент из списка компонентов (используя наблюдаемые). Но анимация: оставить не запускается:

    @Component({
        animations: [
            trigger(
            'enterAnimation', [
                transition(':enter', [
                style({transform: 'translateY(100%)', opacity: 0}),
                animate('500ms', style({transform: 'translateY(0)', opacity: 1}))
                ]),
                transition(':leave', [
                style({transform: 'translateY(0)', opacity: 1}),
                animate('500ms', style({transform: 'translateY(100%)', opacity: 0}))
                ])
            ]
            )
        ],
        template: `
            <div class="mb1 card text-xs-center rounded" [@enterAnimation]="show">

  ...

export class ContentPropertyComponent {

    show: boolean = false;

    constructor(private router: Router) {
        this.show = true;
     }

    handleRemoval(contentProperty: PropertyModel) {
        this.show = false;
        this.delete.emit(this.contentProperty);
    }
}

Любая помощь была оценена.

4b9b3361

Ответ 1

Angular ввел :enter и :leave ярлыки в версии 2.1.0, поэтому, если вы используете более раннюю версию (как я подозреваю), вы должны использовать определения перехода void => * и * => void, Или, альтернативно, обновите свой дистрибутив Angular до 2.1.0+.

Изменение вашего кода соответственно работает в Angular 2.0 +

animations: [
    trigger("enterAnimation", [
      transition('void => *', [
          style({transform: 'translateY(100%)', opacity: 0}),
          animate('500ms', style({transform: 'translateY(0)', opacity: 1}))
        ]),
        transition('* => void', [
          style({transform: 'translateY(0)', opacity: 1}),
          animate('500ms', style({transform: 'translateY(100%)', opacity: 0}))
        ])
    ])
  ]

Plunker: https://plnkr.co/edit/xW38PWgD3SQyhRv09IUW?p=preview