Как добавить свойство к объекту с указанным c индексом массива в машинописи (Angular)? - PullRequest
1 голос
/ 22 апреля 2020
emailData.contractors = [
                    0: {
                         id: 1,
                         email: asd@asd
                       }
                    1: {
                         id: 1,
                         email: asd@asd
                       }
                  ]
emailSub(event, data) {
    const trigger = $(event.target);
    this.emailData.contractors.forEach((v, i) => {
      if (v.id == data.id) {
        this.emailData.contractors[0]['subject'] = trigger.val();
      }
    });
  }

Ожидаемый результат

                    0: {
                         id: 1,
                         email: asd@asd
                         subject: 'sdf'
                       }
                    1: {
                         id: 1,
                         email: asd@asd`enter code here`
                       }
                  ]

Как я могу добиться этого в angular 8. Функция выше не работает на keyup вход, из которого я получаю данные

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Используйте Object.assign для добавления свойства.

Попробуйте так:

emailSub(event, data) {
   const trigger = $(event.target);
   let item = this.emailData.contractors.find(x => x.id == data.id);
   Object.assign(item, {'subject':trigger.val()})
}

Рабочая демонстрация

0 голосов
/ 22 апреля 2020

измените свои данные на

emailData.contractors = [
                {
                     id: 1,
                     email: "asd@asd"
                },
                {
                     id: 2,
                     email: "asd@asd"
                }
              ]

или

emailData.contractors = {
                0: {
                     id: 1,
                     email: "asd@asd"
                },
                1: {
                     id: 2,
                     email: "asd@asd"
                }
              }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...