Ионная форма группы patchvalue patch как строки из массива строк - PullRequest
0 голосов
/ 08 мая 2018

В моем компоненте я получаю Карту для редактирования и делаю запрос 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

...