如何从* ngFor传递对象选择选项到(更改)功能Angular 2

时间:2017-03-30 21:11:18

标签: javascript angular typescript

我有一个* ngFor选择选项列表,用于将选项传递给函数。我无法弄清楚如何将实际对象(而不是值)传递给我正在调用的函数。

<h1>
  {{title}}
  <form name="qrForm">
   <h2>Item Number</h2>
   <input type="number" name="myitem" [(ngModel)]="itemno"
(blur)="getItemsList(scriptno)">
  <h2>Date of birth</h2>
  <input type="date" name="dob" [(ngModel)]="dateofbirth" (blur)="getItemsList(itemno, dateofbirth)">
  <div *ngIf="showDeliveryTypes" name="deliverytypes">
  <h3>Delivery Method</h3>
  <select #select [(ngModel)]="current" (change)="validateDeliveryTypes(select.value)" name="deliveryoptions">
    <option *ngFor="let item of qrData.DeliveryTypes" [value]="item.DeliveryTypeId">{{item.DeliveryTypeName}}</option>

  </select>
  </div>
 </form>
</h1>

在(change)=“validateDeliveryTypes()”函数中,我得到item.DeliveryTypeId值(这是你所期望的)。但是,如何获取“item”对象以便我可以访问该对象上的所有属性而不仅仅是DeliveryTypeId?

任何帮助非常感谢。还在学习Angular 2。

1 个答案:

答案 0 :(得分:1)

您可以使用DeliveryTypeId

validateDeliveryTypes内部Array.prototype.find方法找到它
...
public validateDeliveryTypes(){
   let selectedItem = this.qrData.DeliveryTypes.find((item)=> item.DeliveryTypeId===this.current);
   //rest of your code here
}
...