如何在选项角度中选择所选项目

问题描述 投票:2回答:2

我有一个dropdown填充一些类型ObjectA

item.component.html:

<label>items list:
    <select formControlName="itemsCtl" (change)="onChange()">
        <option *ngFor="let item of itemList" [value]="item">{{item.label}}</option>
    </select>
</label>

在我的反应形式中,我需要拥有所选项目但是当我在互联网上搜索了很多时,我找到了符合我目的的代码:

item.component.ts:

selectedItem : ObjectA;
...
onChange()
{  
    this.selectedItem = this.factorForm.controls['itemsCtl'].value;
}

但当我得到所选项目时,它是[object object],而我需要选择项目为ObjectA。我怎么能选择项目作为ObjectA甚至我如何将[object object]转换为ObjectA

使用Angular 5.0.1。

angular typescript angular-forms
2个回答
1
投票

尝试使用ngValue指令而不是值。

    <option  *ngFor="let item of itemList"  [ngValue]="item"   >{{item.label}}</option>

0
投票

好吧,我不确定你的(itemList)或你的(ObjectA)的结构是什么

为此我需要更多信息。

相反,如果你的方法不起作用,试试这个:

<label>items list:
<select formControlName="itemsCtl" (change)="onChange()" [(ngModel)]="someVar">
    <option *ngFor="let item of itemList" [value]="item">{{item.label}}</option>
</select>

然后在你的功能:

selectedItem : ObjectA;
someVar: any;
...
onChange()
{  
    this.selectedItem = this.factorForm.controls['itemsCtl'].value;
    console.log(someVar);
}

看看它得到了什么输出。

希望这一切都有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.