2017-12-01 46 views
0

[mat-dialog-close]の使い方について少し混乱しています。[mat-dialog-close]の使用

私はフォームのダイアログを持っています。ユーザーが[送信]ボタンをクリックすると、フォームが検証されます。入力が有効な場合、ダイアログは閉じられ、フォームが送信されます。ただし、入力が無効な場合、ダイアログは開いたままになり、エラーメッセージが表示されます。

<button mat-button [mat-dialog-close]="true">Yes</button> 

私はちょうどそれをブール値を渡すことができることと、タグがアクティブであるかどうかを考えた:そのために私は次のようにそれが使用されているofficial documentationに記載されているように、[マット]ダイアログクローズ]使用したいです変数のブール値に依存します。ただし、これは機能しません。私はそれを変数formisvalidを通過した

<button type="submit" (click)="addUser()" [mat-dialog-close]="formisvalid" mat-button>Submit</button> 

:私はこのようにそれを試してみました。入力が無効でない限り、値はtrueです。しかし、ダイアログは、formisvalidの値にかかわらず、常に閉じます。 私もfalseと交換しようとしました。私は、何が起こったとしてもダイアログが開かれたままだと思ったが、それもいつも閉じるだろう。

私の質問は、私は[mat-dialog-close]の使用について間違っているのですか、何か間違っていますか?これが[mat-dialog-close]ディレクティブでは達成できない場合、私がしようとしていることを達成するための別の方法は何でしょうか?

+0

[]で使用しないでください。 例: '' – byblix

+0

しかし、私はそれを使うべきではないのですが、なぜそれを実装しますか?それのために使用する必要がありますか? –

+0

どういう意味ですか?あなたのコンポーネントとapp.module.tsでそれをインポートし、私の例のようにHTMLコンポーネントのボタンを呼び出します – byblix

答えて

1

フォームが有効でない場合は、ボタンを無効に設定します。フォームが有効でない限り、フォームが有効でない限りボタンがクリックされません。

<button type="submit" (click)="addUser()" mat-dialog-close [disabled]="formisvalid" mat-button>Submit</button> 
+0

これは回避策ですが、ダイアログコンポーネント内からダイアログを簡単に閉じることができます。私はonSubmitメソッドでhttpClientリクエストを持っており、結果に応じてダイアログを閉じたり閉じたりしたいと思います。私がsubscribeメソッドで成功した結果を得たら、ダイアログを閉じます。それ以外の場合は、警告メッセージが表示されたままにします。 –

+0

ええ、コンストラクタに 'constructor(public dialogRef:MatDialogRef ){}'を置き、 'this.dialogRef.close(returnValue);' –

関連する問題