我有一个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。
尝试使用ngValue指令而不是值。
<option *ngFor="let item of itemList" [ngValue]="item" >{{item.label}}</option>
好吧,我不确定你的(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);
}
看看它得到了什么输出。
希望这一切都有帮助!