У меня есть компонент, у которого есть кнопка, которая запускает диалоговое окно, диалоговое окно имеет форму, которую пользователь заполняет, после чего данные отображаются в компоненте.Я хочу редактировать эти данные через тот же диалог, но мне не удается передать данные в диалог.
Это функция, которая создает диалог в первую очередь:
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()
без удачи.
Спасибо за вашу помощь!