ngIf - チェックされた後に式が変更されました。
2023-09-20 19:58:08
質問
簡単なシナリオがあるのですが、どうしてもうまくいきません!
私のビューでは、高さに制限のあるボックスにいくつかのテキストを表示します。
テキストはサーバーから取得されるので、テキストが入力されるとビューが更新されます。
ここで、'expand' ボタンに
ngIf
という
が必要です。
は、ボックス内のテキストがオーバーフローしている場合、ボタンを表示します。
問題は、テキストが取得されるときに変更されるため、「展開」ボタンの条件が次のように変わってしまうことです。
true
に変わってしまうことです。
なので、こんなエラーが出ます。 式はチェックされた後に変更されました。以前の値: 'false'。現在の値: 'true'です。
明らかにボタンが表示されない...
これを見る プランカー (エラーを見るにはコンソールをチェックしてください...)
これを動作させるために何かアイデアはありますか?
どのように解決するのですか?
このエラーが発生するのは
dev mode
:
で
dev mode
は、モデルが変更されたかどうかをチェックするために、通常の変更検出の実行の後に追加のターンを追加します。
というわけで、次のtickで強制的に変更検出を実行するために、以下のようなことができます。
export class App implements AfterViewChecked {
show = false; // add one more property
constructor(private cdRef : ChangeDetectorRef) { // add ChangeDetectorRef
//...
}
//...
ngAfterViewChecked() {
let show = this.isShowExpand();
if (show != this.show) { // check if it change, tell CD update view
this.show = show;
this.cdRef.detectChanges();
}
}
isShowExpand()
{
//...
}
}
ライブデモです。 https://plnkr.co/edit/UDMNhnGt3Slg8g5yeSNO?p=preview
関連
-
[解決済み] チェックした後に○○の表現が変わっている
-
[解決済み] Angular 4+ ngOnDestroy() サービス中 - observableを破壊する
-
[解決済み] タイプスクリプト タイプ X はタイプ Y の length、pop、push、concat、その他 26 のプロパティが欠落しています。[2740]
-
[解決済み] 新しいangularプロジェクトを作成する際に依存関係ツリーエラーを解決できない
-
[解決済み] Karma/Jasmineのテストで「[object ErrorEvent] thrown」エラーが発生した場合、どのようにデバッグすればよいですか?
-
[解決済み] 64進数の文字列を角(2+)でエンコードおよびデコードする。
-
[解決済み] 角度換算2
-
[解決済み] Typescriptで文字列をbooleanに変換する方法 Angular 4
-
[解決済み] Uncaught Error: Unexpected module 'FormsModule' declared by the module 'AppModule'. Pipe/@Directive/@Component アノテーションを追加してください。
-
[解決済み] Angular - ngForの中のngIfの中のパラメータを持つng-template [重複]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ng buildの後にangular-cliのdist-folderのパスを変更するには?
-
[解決済み] Angular 2におけるEventEmitter.next()とEventEmitter.emit()の相違点
-
[解決済み] 継承と依存性注入
-
[解決済み] ルーターナビゲートで同じページのngOnInitを呼び出さない
-
[解決済み] 新しいangularプロジェクトを作成する際に依存関係ツリーエラーを解決できない
-
[解決済み] Angular2 formGroupに値を設定する
-
[解決済み] angular-cli server - APIリクエストを別のサーバーにプロキシする方法は?
-
[解決済み] Typescript におけるインターフェースとクラスの違い
-
[解決済み] Angular Material 2 ネストされたオブジェクトによるデータテーブルのソート
-
[解決済み] Angular2 ルーターがクエリ文字列を保持する