Как объединить две формы (одна является массивом внутри другой) - PullRequest
0 голосов
/ 15 января 2019

У меня проблемы с присоединением к этим двум

let tasks = [];

    this.tasks.map(it => {
        tasks.push(
            {
                'prop1': it['prop1'],
                'prop2': it['prop2'],
                'prop3': it['prop3'],
            }
        );
    });

    let projects = {
        'title': this.projectForm.value['title'],
        'state': this.projectForm.value['state'],
        'comment': this.projectForm.value['comment'],
        'other': 
        // here I want to have the whole "tasks" array with "prop1", "prop2", "prop3".
    };

Как бросить весь ответ от задач к проектам -> другим? У меня хороший ответ, когда я задаю console.log, но у проектов просто нет «другой» поддержки, и это делает мою форму недействительной.

Формы изготавливаются с угловым FormBuilder.

(просто сообщаю, что в этом случае использование ":" не работает - массив не назначен, а свойство "other" полностью пропущено в консоли и т. Д.)

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Вы можете использовать простое равное : для объединения двух объектов - это машинопись, а также здесь есть онлайн-среда, в которой вы можете увидеть соединение двух объектов (ваш пример): https://stackblitz.com/edit/angular-cdjv2k

0 голосов
/ 15 января 2019

Использование оператора спреда

Это сделает то, что вам нужно

let otherObject= {...tasks};

let projects= {'other': {...otherObject}, 'title': this.projectForm.value['title'],
        'state': this.projectForm.value['state'],
        'comment': this.projectForm.value['comment']
    }

Примечание оператор спреда начинается с '...' и является функцией ES6

Я добавляю еще один пример использования консоли браузера (chrome), это должно помочь прояснить ситуацию.

enter image description here

Итак, один помощник поднял вопрос в комментариях о наличии массива в разбросе вместо одного объекта. Ниже можно кое-что сослаться;) наслаждайтесь !!

enter image description here

Добавление еще одного способа сделать это с помощью оператора распространения:

enter image description here

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