В моем компоненте я получаю Карту для редактирования и делаю запрос PUT:
constructor(
public navCtrl: NavController,
public navParams: NavParams,
private formBuilder: FormBuilder,) {
this.cardToEdit = navParams.get('cardToEdit');
this.editCRCCardForm = this.formBuilder.group({
thing: ['', Validators.required],
responsibilities: ['', Validators.required],
collaborators: [''],
});
}
ionViewDidLoad() {
console.log(this.cardToEdit);
this.editCRCCardForm.patchValue(this.cardToEdit);
...
}
updateCard(formData){
console.log(formData)
}
распечатки на консоли (это карта для редактирования):
{"id":8,"responsibilities":[{"id":7,"name":"Name","card":8},{"id":8,"name":"ISBN","card":8}],"collaborators":[{"id":4,"name":"","card":8}],"thing":"Book"}
Форма для редактирования карты:
<form [formGroup]="editCRCCardForm" (ngSubmit)="updateCard(editCRCCardForm.value)" autocomplete="off">
<!-- Title -->
<ion-item>
<ion-label>Thing*</ion-label>
<ion-input type="text" formControlName="thing"></ion-input>
</ion-item>
<ion-item>
<ion-label>Attributes and operations*</ion-label>
<ion-textarea formControlName="responsibilities"></ion-textarea>
</ion-item>
<ion-item>
<ion-label>Related things</ion-label>
<ion-input type="text" formControlName="collaborators"></ion-input>
</ion-item>
<button ion-button full type="submit" [disabled]="!editCRCCardForm.valid">Add</button>
</form>
Теперь мой patchValue правильно помещает Book в поле вещи, но для двух других полей я получаю [объект объекта] в своем шаблоне.
Как я могу это исправить? Например. По сути, я хочу заполнить Name ISBN
в обязанностях (в текстовой области, значения разделены пробелом)
UPDATE:
Я пробовал что-то вроде
ionViewDidLoad() {
this.editCRCCardForm.patchValue({thing: this.cardToEdit.thing});
for (let responsibility of this.cardToEdit.responsibilities){
this.editCRCCardForm.patchValue({responsibilities: responsibility.name});
}
}
Что является частично успешной печатью только последнего значения в массиве, т.е. ISBN, а не NAME ISBN