2016-11-19 38 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 –