我在 Angular 中有一個“按鈕”組件,有一個loading輸入。如果值為,false則顯示按鈕的文本,如通過內容投影 ( <ng-content>) 顯示的那樣。如果true,它會隱藏內容并改為顯示“微調器”組件。這在模板中使用*ngIf:<button class="btn" [ngClass]="{'loading': loading}"> <ng-content *ngIf="!loading"></ng-content> <app-spinner *ngIf="loading"></app-spinner></button>這適用于在兩個視圖之間切換;如果按鈕上的 Input 發生變化,模板會正確呈現它。但是,當輸入發生變化并顯示微調器時,會導致按鈕高度出現奇怪的動畫。當按鈕 CSS 具有transition: all 0.25s ease-out;. 如果我把它注釋掉,那很好。但如果可能的話,我想保留轉換屬性。我創建了一個 Stackblitz 來演示它: https ://stackblitz.com/edit/angular-ngif-in-button-strange-animation我想知道這是否是因為在 Angular 的更改檢測工作時,兩個組件都在瞬間顯示,但我不確定。
在兩個子組件之間切換時,Angular ngIf 會導致高度 CSS 過渡
HUH函數
2022-01-13 16:04:42