angular controlvalueaccessor formgroup issue - PullRequest
0 голосов
/ 07 августа 2020

Я использую angular controlvalueaccessor и получаю данные от дочернего элемента к родительскому, но я хочу манипулировать данными,

Я получаю что-то вроде кода ниже, contactInfo - это данные моего дочернего компонента,

{
 contactInfo: {workPhone: {phone: 495987, msg: 'me'}, mobilePhone: {phone: 495987, msg: 'me'}, fax: "90876655"},
 createdById: 707,
 email: "d@d.com",
 fax: "90876655"
}

но в полезной нагрузке я должен отправить что-то вроде ниже

{
 workPhone: {phone: 495987, msg: 'me'},
 mobilePhone: {phone: 495987, msg: 'me'},
 fax: "90876655",
 createdById: 707,
 email: "d@d.com",
 fax: "90876655"
}

Как я могу это сделать, пожалуйста, помогите мне.

Ответы [ 2 ]

1 голос
/ 07 августа 2020

Вот рабочий пример:

let data = {
 contactInfo: {workPhone: {phone: 495987, msg: 'me'}, mobilePhone: {phone: 495987, msg: 'me'}, fax: "90876655"},
 createdById: 707,
 email: "d@d.com",
 fax: "90876655"
};

let payload = {...data};
delete payload.contactInfo;
payload = {...data.contactInfo, ...payload};

console.log(payload);
0 голосов
/ 07 августа 2020

просто используйте вспомогательную переменную перед отправкой данных, например,

submit(form:FormGroup){
  if form.valid)
  {
    const dataSend={
      workPhone:form.value.contactInfo.workPhone
      mobilePhone:form.value.contactInfo.mobilePhone
      fax:form.value.fax,
      createdById:form.value.createdById,
      email:form.value.emai
    }
    this.myService.sendData(data);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...