2017-12-01 8 views
0

[mat-dialog-close]의 사용법에 대해 다소 혼란 스럽습니다.[mat-dialog-close]의 사용

그래서 양식이있는 대화 상자가 있습니다. 사용자가 제출 단추를 클릭하면 양식의 유효성이 검사됩니다. 입력이 유효하면 대화 상자가 닫히고 양식이 제출됩니다. 그러나 입력이 유효하지 않으면 대화 상자가 열리고 오류 메시지가 표시됩니다. 다음과 같이 그 동안 나는 그것이 official documentation에서 설명 된 바와 같이 매트-대화 상자 닫기]가 사용되는 경우 사용할 :

<button mat-button [mat-dialog-close]="true">Yes</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); –