問題タブ [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.
angular - フォームのステータスを手動で変更するには? または、フォームを再割り当てする前に何をすべきですか?
何らかの理由で、フォームのステータスを手動で変更する必要があります。
私の場合、フォームの検証が失敗した場合、更新ボタンをクリックすると、フォームが再び開始されます。しかし、検証に失敗したステータスのままで、いくつかの問題が発生したため、フォームを再割り当てする前にステータスを変更する必要があります。実際どうすればいいの?
angular - statusChanges または valueChanges をサブスクライブするために、updateOn が blur の場合のフォーム非同期検証
updatOn: 'blur'
Angular7 アプリケーションで
フォーム非同期検証を使用しています。スタックブリッツ
この状況では、名前が一意かどうかを確認する必要があります (非同期検証)。
問題は、このコードをどこに置くかです。
現在の方法
子コンポーネントでこれを試しました
出来た。しかし、フォーム検証を行うための属性が少なくとも 10 個あります。これにより、 this に追加されるコードが多すぎる@Input() set myForm() {}
ため、別の関数でこれを行う必要があります。
@Input
というわけで、属性の statusChange をサブスクライブするのをやめました。ここにない場合、どこでこれを行う必要がありますか?
また、 の statusChange をサブスクライブできません。ngOnInit
原因の値は で定義されていませんngOnInit
。
誰でも私を助けてください。
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
私には、イベントがトリガーされたときだけでなく、コードによってトリガーされるためにこの動作が利用可能であるべきであることは明らかです
このようなもの: