这是我的对象(来自api)填充在下拉列表中
[
{Id: 1, Name: 'Hydrogen', symbol: 'H'},
{ID: 2, Name: 'Helium', symbol: 'He'},
{ID: 3, Name: 'Lithium', symbol: 'Li'},
];
下面我有我的HTML代码
<mat-form-field >
<mat-select formControlName="Name" placeholder="Name" (selectionChange)="elementSelectionChange($event)">
<mat-option *ngFor="let element of Elements" [value]="element.Name">
{{ element.Name }}
</mat-option>
</mat-select>
</mat-form-field>
当用户选择名称selectionChange
需要传递时,根据该ID,我需要填充下一个下拉值。
这里我不想更改[value]="element.Name"
但是当用户在下拉列表中选择一些名称时,我需要传递ID才能实现这一点。
component.ts
elementSelectionChange(event) {
console.log(event.value.ID);
}
答案 0 :(得分:0)
假设所有名称都是唯一的,您可以使用find()
来获取选择的ID:
elementSelectionChange(ev) {
let value = this.Elements.find(x => x.Name === ev.value)
console.log(value.ID);
}