Angular-模板驱动形式-以数组中对象的形式发送数组数据

问题描述 投票:0回答:1

我正在多选下拉列表中显示一些列表。 提交的数据的格式为

[ "object1" , "object2" ]

我希望它以以下形式提交:

[ { object 1 } , { object 2} ]

我从html的下拉列表代码:

<select name="service" multiple matNativeControl required ngModel>
  <option *ngFor="let service of subCategoriesList" value="{{service.id}}">{{service.service}}</option>
</select>

Component.ts文件:

addPackage(form: NgForm){
    const body = {
      package_name : form.value.name,
      services: form.value.service, //the value required in objects in an array   
    }
    console.log("add package body is: ", body)

任何帮助将不胜感激。

arrays angular forms angular2-template
1个回答
0
投票

尝试使用Object.assign;

在addPackage函数中:然后为每个选择调用Object.assign创建一个空的文件

addPackage(form: NgForm){
    let selections=[];
    form.value.service.forEach(element => {
      var selection= Object.assign({}, { element });
      selections.push(selection);
    });
    const body = {
      package_name : form.value.name,
      services: selections, //put your created objects here   
    }
    console.log("add package body is: ", body)
}
© www.soinside.com 2019 - 2024. All rights reserved.