。 、あなたはすぐにフォームを放棄する必要がある場合は
submitForm() {
this.saveDataAsync().subscribe(
() => this.abandonForm(),
(err) => this.processError(err) // may include abandonForm() call
);
}
:我々は
submitForm() {
if (this.myForm.invalid) {
return;
}
this.saveData(); // processing Form data
this.abandonForm(); // change route, close modal, partial template ngIf-destroying etc
}
saveData
た場合は、非同期(例えば、それはAPI呼び出しを介してデータを保存し)、その後、我々は結果を待つことである持っている、と言いますゼロ遅延アプローチも機能するはずです。これにより、フォームの送信が呼び出された後に次のイベントループにDOM分離が行われることが保証されます。
submitForm() {
this.saveData();
setTimeout(() => this.abandonForm());
}
これはボタンの種類に関係なく機能します。
[取得中のエラー "フォームが接続されていないためにフォームの送信がキャンセルされました]"(http://stackoverflow.com/questions/42053775/getting-error-form-submission-canceled-because-the-form-接続されていません) – Saravana
フォームを非表示にして表示する* ngIfがありますか? – mickdev
@mickdev no * ngIf、私はこの 'componentRef.destroy();'のようなモーダルを破壊します、私は私の質問に詳細を追加しました。ありがとう! – nick