Диалог MatDialog из Angular Material не закрывается - PullRequest
0 голосов
/ 13 марта 2019

Я работаю над приложением Angular 6, где я использую диалоговое окно Angular material

  • Я пытаюсь закрыть диалоговое окно в случае успеха после отправки моих данных успешно на сервер,

Я использовал this.dialogRef.close (0); или this.dialogRef.close (0); или this.dialogRef.close (); но все равно не работает

Я ставлю свой код ниже

component1.ts

let NewRegDialog = this.dialog.open(NewRegistrationComponent, {

  width: '750px',
  height: '500px',
  //disableClose: true,
  data: {
    email : email,
    regType : regType,
  },
});

NewRegDialog.afterClosed().subscribe(result => {

  if(result == 1){
    this.dialogRef.close('signup');
  }else{
    alert('Login failed') ;
    });

component2.ts

    import { Component, OnInit , Inject } from '@angular/core';
    import {  MatDialog  , MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';


   ... .. 
   .. .. 

      constructor( private restapi: ServicesService , private dialog: MatDialog ,   public dialogRef: MatDialogRef<NewRegistrationComponent>,
        @Inject(MAT_DIALOG_DATA) public data: any ) {

   ...
   ..... 
   }


     user_signup(data) {


          let userData = {Email: this.email };
          this.restapi.signupUsingSocial(userData).then(
            result => {
              this.responseData = result;

              if (this.responseData.status == 1) {
                localStorage.setItem('token', this.responseData.data);
                this.dialogRef.close(1);

              } else {
                alert('give proper input');
              }
            },
            err => {
              this.dialogRef.close(0);
            }
          );}}

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Вы можете попробовать:

 <div mat-dialog-actions>
    <button (click)="close()">close</button>
 </div>

, а в своем тс:

close(){
   this.dialogRef.close(true);
}
0 голосов
/ 13 марта 2019

Вы можете закрыть диалог из компонента, где у вас есть

let NewRegDialog = this.dialog.open(NewRegistrationComponent, {

В вашем примере component1 имеет метод dialog.open. Почему вы пытаетесь закрыть в component2?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...