2016-09-16 57 views
0

我目前在Angular2組件中創建了一些功能,其中對象數組循環以創建表單選擇框的選項。Angular2選擇框將對象作爲字符串傳遞

我有這個工作,當選擇框選項更改時,我調用一個處理函數,我打算通過選擇的選項。

我現在遇到的問題是我無法讓對象從視圖傳遞到控制器。該對象被傳遞,雖然作爲一個字符串:

[object object] 

這裏是我的代碼:

觀點:

 <div class='searchbar-wrapper'> 
      <h5>MANUFACTURER</h5> 
      <select class='manufacturers' #m [(ngModel)]="selectedManufacturer" (change)="changeManufacturer(m.value)"> 
       <option>-- please select --</option> 
       <option *ngFor="let manufacturer of manufacturers" [ngValue]="manufacturer">{{manufacturer.name}}</option> 
      </select> 
     </div> 

控制器:

changeManufacturer(manufacturer) { 
    this.productsLoaded = false; 
    this.selectedManufacturer = manufacturer; 
    this.productPayload.manufacturer = manufacturer.id; 
    this.getProducts(); 
} 

正如你所看到的,我試圖將對象傳遞給控制器​​,但這不起作用。任何人都可以建議爲什麼它像字符串一樣通過?

Thankss

+0

我會建議你使用manufacturer.id作爲ngValue然後您可以使用該ID從班級中的manfacturers list/Array設置正確的SelectedManugacturer。這將是最佳的。 – Jeet

+0

感謝您的回覆。我已經嘗試過,但我仍然把它作爲一個字符串:「13:13」 – devoncrazylegs

回答

0

我設法得到這個工作,我從更改以下行:

<select class='manufacturers' #m [(ngModel)]="selectedManufacturer" (change)="changeManufacturer(m.value)"> 

到:

<select class='manufacturers' [(ngModel)]="selectedManufacturer" (ngModelChange)="changeManufacturer($event)"> 
相關問題