угловое преобразование массива строк в массив объектов json - PullRequest
0 голосов
/ 07 мая 2018

У меня есть поле textarea в моей форме

   <ion-item>
     <ion-label>Attributes and operations*</ion-label>
     <ion-textarea formControlName="responsibilities"></ion-textarea>
   </ion-item>

Когда я отправляю форму, я получаю следующее значение формы:

{"thing":"Book","responsibilities":"Name ISBN","collaborators":""}

Функция отправки:

createCard(formData){

    this.responsibilities = this.addCRCCardForm.value.responsibilities.split(" ");
    console.log(this.responsibilities)

    for (let res of this.responsibilities){
        //test
    }
}

Консольный оператор печатает: ["Name", "ISBN"]

Вместо этого я хочу, чтобы значение моей формы было (для отправки в мой бэкэнд):

{"thing":"Book","responsibilities": [{name: "Name"},{name: "ISBN"}],"collaborators":[{..},{..}]

Где и что я должен изменить?

1 Ответ

0 голосов
/ 08 мая 2018

Вы можете получить значение любого объекта формы.Вы можете вызвать

This.addcrccardform.get ('responsibilities') 

, который возвратит AbstractControl, который может быть приведен к его фактическому типу, такому как formgroup или formarray (для типизированных целей)

Отображение значения .value этого объектаконтроль ответственности в форме объекта или вы можете перебирать .controls объекта и делать то, что вам нужно сделать.

Вы можете .get для любого объекта формы, чтобы получить AbstractControl, который должен дать вам всенеобходимая вам функциональность.

Все это, конечно, при условии, что вы используете реактивные формы Angulars.

Может быть полезно создать объект для целей отправки и настроить класс в формате, в котором нуждается сервер,Затем поместите субконтроль как значения в соответствующие массивы

Надеюсь, это поможет

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