2016-11-19 20 views
1

比方说,我们有: <li *ngFor="let item of items" [@myTrigger]='state' (@myTrigger.start)="animStart($event)" (@myTrigger.done)="animDone($event)">{{ item }}</li>Angular 2动画回调.done,设置属性?

和方法animDone:

animDetails: string; 

animDone(event:any) { 
    console.log('Ended!'); 
    this.animDetails = 'I am done!'; 
} 

在视图中我有{{ animDetails }}

有什么奇怪的是,虽然CONSOLE.LOG( '!截止')适当地触发, animDetails没有。

第一个动画,没有什么改变。第二个动画(通过点击一个按钮启动),“我完成了!”立即启动,而不是.done。

回答

1

由于性能原因,AFAIK动画在安格拉斯区外运行。

constructor(private cdRef:ChangeDetectorRef) {} 

animDetails: string; 

animDone(event:any) { 
    console.log('Ended!'); 
    this.animDetails = 'I am done!'; 
    this.cdRef.detectChanges(); 
} 

有大约运行Angulars区内动画回调的问题。我认为它已经被修复了,但你的问题似乎是另有说明,除非你不使用最新的Angular2版本。

+0

啊!我在这个特定的例子中使用了Angular 2 quickstart。那可能是为什么?顺便说一下,我在角度看到你的名字*到处都是*很棒! –

+0

谢谢。 “快速启动”是什么意思? https://angular.io/docs/ts/latest/quickstart.html?它似乎在使用最新版本。这个问题在10天前得到修复。它可能不包含在最新版本中。 https://github.com/angular/angular/issues/11881 –