問題タブ [angular-changedetection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
6548 参照

angular - Angular7 - 同じ値を 2 回入力すると、コンポーネントで [ngModel] が更新されない

最小限の Stackblitz の例

https://stackblitz.com/edit/angular-mqqvz1

Angular 7 アプリで、フィールドを持つ単純なコンポーネントを作成しました<input>

キーボードで入力値を変更するときは、値をonBlurにフォーマットします。- 最小限の例では、文字列「EDIT」を追加したいだけです。

これは基本的に機能しています:

  • 「test」と入力してフィールドをぼかすと、「test EDIT」に変更されます
  • 「lala」と入力してフィールドをぼかすと、「lala EDIT」に変更されます

ただし 、「テスト」と入力すると、ぼかし(機能します)、「テスト」と再度入力すると、機能しなくなります。

関数が呼び出され(onInputUpdate()コンソール ログで確認できます)、変数inputValueが更新されます (コンポーネントで確認できます{{inputValue}})。ただし、入力値は変更されません。 「test EDIT」になると思いますが、「test」のままです。

別の文字列を入力すると機能しますが、同じ文字列を 2 回続けて入力すると機能しません。何故ですか?どうすればこれを修正できますか?

component.html

component.ts

0 投票する
0 に答える
37 参照

android - onLoad を呼び出す ChangeDetector

そのため、changeDectector.detectChanges() を呼び出す必要があるいくつかのアニメーションを含むカスタム コンポーネントがあります。

私のchildComponent.tsから:

これは、次のように ngif を親コンポーネントに追加するまで機能していました。

ngif を追加すると、何らかの理由で childComponent が onLoad multipleTimes を呼び出す原因になります。したがって、this.changeDetector.detectChanges() を呼び出すたびに、onLoad メソッドがトリガーされ、「最大コール スタック サイズを超えました」というエラーが発生します。ここで何が起こっているか知っている人はいますか?どうすれば修正できますか?

よろしくお願いします!