首页 > 解决方案 > formbuilder 选择值作为对象

问题描述

我有一个表单,其中有一个多选字段。此选择字段的选项由接收到的数据(例如任务对象)填充。

[
{"id":7,"title":"Seven","project":1},
{"id":8,"title":"Eight","project":2},
{"id":9,"title":"Nine","project":2}
]

和我的选择字段:

<ion-list>
    <ion-item>
        <ion-label>Select tasks</ion-label>
        <ion-select formControlName="tasks" multiple="true" (ionChange)="arrangeSelectedTasks()">
            <ion-option *ngFor="let task of tasks" value={{task}}>{{task.title}}</ion-option>
        </ion-select>
    </ion-item>
</ion-list> 

功能

arrangeSelectedTasks(){

    for(let task of this.addScenarioForm.value.tasks){
        this.selectedTasks.push(task)
    }

    console.log("selectedTasks: ", this.selectedTasks)
}

需要一个任务对象数组

哪里value={{task.id}}经过["7", "8"]value={{task}} passes ["[object Object]", "[object Object]"]

这导致我的后端抛出 BAD REQUEST 错误。我想[{..},{..}]从价值中传递这样的东西。

如何做到这一点?

标签: ionic-frameworkionic3

解决方案


使用它.map

selectedTasks:any = [];

arrangeSelectedTasks(){
         this.addScenarioForm.value.tasks.map(task => {
           this.selectedTasks.push({task.id});
    });
        console.log("selectedTasks: ", this.selectedTasks)
    }

推荐阅读