Я создаю анимацию в angular, мне нужно знать, когда она начинается, поэтому я определил обратный вызов. Дело в том, что обратный вызов срабатывает при загрузке компонента, даже без изменения состояния.
Шаблон
<button (click)="click()">click</button>
<div class="myclass" [@throwBall]="state" (@throwBall.start)="animStart($event)" >
</div>
Компонент:
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ],
animations: [
trigger('throwBall', [
state('steady', style({ })),
state('throw', style({ top: '300px' })),
transition('steady => throw', [animate('2s')])
]),
trigger('blockInitialRenderAnimation', [
transition(':enter', [])
])
]
})
export class AppComponent {
state = 'steady';
click() {
this.state = 'throw';
}
animStart(event: any) {
if (event.fromState !== 'void') {
console.log('anim start callback');
}
}
}
Вот демонстрация : https://stackblitz.com/edit/angular-9szgic
Почему при загрузке компонента в консоли отображается «обратный вызов анимации запуска»?