Angular 中帶有*ngClass 的條件類別
Angular 提供了各種選項來有條件地將CSS 類別應用到HTML 元素。常見的方法是使用 *ngClass 指令。但是,如果使用不當,可能會導致錯誤,例如「無法讀取未定義的屬性『刪除』。」
問題:
鑑於下面的 Angular程式碼,為什麼會出現以下錯誤發生:
Cannot read property 'remove' of undefined at BrowserDomAdapter.removeClass
<ol> <li *ngClass="{active: step==='step1'}" (click)="step='step1'">Step1</li> <li *ngClass="{active: step==='step2'}" (click)="step='step2'">Step2</li> <li *ngClass="{active: step==='step3'}" (click)="step='step3'">Step3</li> </ol>
解:
由於在Angular 版本2 中使用帶有條件表達式的ngClass 指令而發生錯誤。在 Angular 2 中, ngClass 指令接受一個物件作為參數,其中鍵代表 CSS 類別名稱,值代表布林表達式。
要解決此問題,請將 *ngClass 指令替換為以下任意值Angular提供了以下方法:
類型一:
[class.active] = "step === 'step1'"
二類:
[ngClass]="{active: step === 'step1'}"
二類:
[ngClass]="{1: 'active', 2: 'step2', 3: 'step3'}[step]"二類:
二類:
[ngClass]="step === 'step1' ? 'active' : 'inactive'"二類:二類:二類:二類:第二個>三類: 類型四:對於多類條件,您可以使用物件表示法,如類型二所示。有關使用 *ngClass 的更多詳細信息,請參閱 Angular 文件。
以上是為什麼 Angular 中的'*ngClass”會拋出'無法讀取未定義的屬性'刪除'”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!