ホームページ > ウェブフロントエンド > jsチュートリアル > Angular の「*ngClass」が「未定義のプロパティ 'remove' を読み取れません」エラーをスローするのはなぜですか?

Angular の「*ngClass」が「未定義のプロパティ 'remove' を読み取れません」エラーをスローするのはなぜですか?

Linda Hamilton
リリース: 2024-12-13 12:20:26
オリジナル
808 人が閲覧しました

Why Does

Angular の *ngClass を使用した条件付きクラス

Angular には、条件付きで CSS クラスを HTML 要素に適用するためのさまざまなオプションが用意されています。一般的な方法の 1 つは、*ngClass ディレクティブを使用することです。ただし、正しく使用しないと、「未定義のプロパティ 'remove' を読み取れません」のようなエラーが発生する可能性があります。

問題:

以下の 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 によって提供される次のメソッド:

Type 1 つ目:

[class.active] = "step === 'step1'"
ログイン後にコピー

タイプ 2:

[ngClass]="{active: step === 'step1'}"
ログイン後にコピー

タイプ 3:

[ngClass]="{1: 'active', 2: 'step2', 3: 'step3'}[step]"
ログイン後にコピー

タイプ4:

[ngClass]="step === 'step1' ? 'active' : 'inactive'"
ログイン後にコピー

複数のクラス条件の場合、タイプ 2 に示すようにオブジェクト表記を使用できます。 *ngClass の使用の詳細については、Angular ドキュメントを参照してください。

以上がAngular の「*ngClass」が「未定義のプロパティ 'remove' を読み取れません」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート