問題タブ [angular2-form-validation]

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 に答える
521 参照

angular - フォームのステータスを手動で変更するには? または、フォームを再割り当てする前に何をすべきですか?

何らかの理由で、フォームのステータスを手動で変更する必要があります。

私の場合、フォームの検証が失敗した場合、更新ボタンをクリックすると、フォームが再び開始されます。しかし、検証に失敗したステータスのままで、いくつかの問題が発生したため、フォームを再割り当てする前にステータスを変更する必要があります。実際どうすればいいの?

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

angular - statusChanges または valueChanges をサブスクライブするために、updateOn が blur の場合のフォーム非同期検証

updatOn: 'blur'Angular7 アプリケーションで フォーム非同期検証を使用しています。スタックブリッツ

この状況では、名前が一意かどうかを確認する必要があります (非同期検証)。

問題は、このコードをどこに置くかです。

現在の方法

子コンポーネントでこれを試しました

出来た。しかし、フォーム検証を行うための属性が少なくとも 10 個あります。これにより、 this に追加されるコードが多すぎる@Input() set myForm() {}ため、別の関数でこれを行う必要があります。

@Inputというわけで、属性の statusChange をサブスクライブするのをやめました。ここにない場合、どこでこれを行う必要がありますか?

また、 の statusChange をサブスクライブできません。ngOnInit原因の値は で定義されていませんngOnInit

誰でも私を助けてください。

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

angular - Angular、フォームなしでフィールドを「markAsTouched」する方法はありますか?

input内のアイテムをFormControlマークできること、または次のメソッドのいずれdirtかを呼び出すことができることは既に知っています。touched group.markAsTouched(); form.get('control-name').markAsTouched(); form.markAllAsTouched(); form.controls[someIndex].markAsTouched();

ただし、markAsTouched入力が のときにメソッドが呼び出されているように見えることがわかりfocusますblur

コードで同じ結果を達成する方法はありますか?? ボタンをクリックしたときとしましょう。


ここでは、 form なしで現在の標準動作のgif を確認できます。また、次のライブ サンプルで自分でテストすることもできます。

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

blur私には、イベントがトリガーされたときだけでなく、コードによってトリガーされるためにこの動作が利用可能であるべきであることは明らかです

このようなもの: