如何从 Angular 6 中的选定下拉列表将 Id 传递到我的 API 请求?

How to pass Id to my API request from a selected dropdown in Angular 6?

我正在使用 Angular 6,这里有一个来自 API 响应的下拉列表。

<select 
  class="form-control" 
  name="empName" 
  [(ngModel)]="allData.secondEmp" 
  (change)="typeChange()" 
  (blur)="getid($event)" 
  required
>                           
  <option 
    *ngFor="let employee of Employees" 
    value="{{employee.secondEmp}}">{{employee.firstName}}</option>
</select>

这里我有这样的数组

employees = [{id: 1, firstEMp: 'kaushik', secondEmp: 'krishna'}....]

这里我想在更改下拉功能时在我的请求中获取 id。

我知道我们需要更改 value="{{employee.id}}" 但我这里有一些其他 *ngIf 条件所以我不能在这里更改 value。还有其他解决方案吗? TIA

[ngValue] = "{secondEmployee: employee.secondEmp , id: employee.id }"

试试这个

在您的模板文件中:使用数据属性

 <select 
  class="form-control" 
  name="empName" 
  [(ngModel)]="allData.secondEmp" 
  (change)="typeChange()" 
  (blur)="getid($event)" 
  required>                           
  <option 
    *ngFor="let employee of Employees" 
    value="{{employee.secondEmp}}"
    [attr.data-empid] = "employee.id">{{employee.firstName}}</option>
</select>

在 TS 文件中:获取您的 ID

getid(e) {
    const targetIndex = e.target;
    const res = targetIndex.options[targetIndex.selectedIndex].dataset.empid;
    console.log(res);
  }