Заполните форму внутри MAT-DIALOG Угловой - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть компонент, у которого есть кнопка, которая запускает диалоговое окно, диалоговое окно имеет форму, которую пользователь заполняет, после чего данные отображаются в компоненте.Я хочу редактировать эти данные через тот же диалог, но мне не удается передать данные в диалог.

Это функция, которая создает диалог в первую очередь:

addSubtask(task) {

    this.subtaskID = task._id;

    const dialogConfig = new MatDialogConfig();

    dialogConfig.data = {
        subtaskID:   this.subtaskID,
        description: this.subtaskDescription,
        dueDate:     this.subtaskDuedate,
    };

    const dialogSubTaskRef = this.dialog.open(AddNewSubtaskDialog, dialogConfig);

    dialogSubTaskRef.afterClosed().subscribe(data => {

      console.log("Subtask Dialog output:", data);

    });
  }

В компоненте диалога у меня есть:

export class AddNewSubtaskDialog implements OnInit {

  @ViewChild(MatButton) submitButton: MatButton;

  addSubtaskForm: FormGroup;

  constructor(
    private fb: FormBuilder,
    private http: HttpClient,
    public dialogRef: MatDialogRef<AddNewSubtaskDialog>,
    @Inject(MAT_DIALOG_DATA) public data: AddSubTaskDialogData) {
      this.idRec = data.subtaskID;
    }

  ngOnInit() {

      this.addSubtaskForm = new FormGroup({
        subtaskDescription: new FormControl('', Validators.required),
        subtaskDueDate: new FormControl(new Date()),  
      });

  }

  addSubtask() {

    this.dialogRef.close(this.addSubtaskForm.value);
    const subtaskData = this.addSubtaskForm.value;

    this.submitButton.disabled = true;

    let options = {
      headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')
    };

    let body = new URLSearchParams();
    body.set('description', subtaskData.subtaskDescription);
    body.set('dueDate', subtaskData.subtaskDueDate);

    this.http.post<any>(`${this.apiurl}`, body.toString(), options)
    .subscribe(
        success => {
          console.log(success);
        },
        error => {
          console.log('Error!!!');          
        }
      );
  }

} 

Я попытался использовать setValue() без удачи.

Спасибо за вашу помощь!

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