我使用Angular 5,我希望将任何类型的对象转换为对象。
<select #selectedSupplier (change)="onSelectSupplier(selectedSupplier.value)">
<option *ngFor="let supplier of suppliers" [value]="supplier">
{{ supplier.name }}
</option>
</select>
在类型级别,当我尝试使用此功能在控制台上显示结果
// Result is [object Object]
onSelectSupplier(supplier){
console.log(supplier);
}
// Result is undefined
onSelectSupplier(supplier){
console.log(supplier.name);
}
所以我想向供应商投下:任何下面的对象
export class Supplier{
name: string;
constructor(name: string){
this.name=name;
}
}
答案 0 :(得分:1)
类型仅在运行时存在,因此不能解决您的问题。
实际上,问题出在使用[value]
,因为它只能处理字符串。这就是为什么将其转换为[object Object](实际上是一个字符串)的原因。您应该改为使用ngValue
作为对象。我也建议像这样使用ngModel
:
<select #selectedSupplier [(ngModel)]="selected" (change)="onSelectSupplier(selected)">
<option *ngFor="let supplier of suppliers" [ngValue]="supplier">
{{ supplier.name }}
</option>
</select>