2016-08-12 52 views
2

我可以加载没有问题跟踪事件等选择框。我不能做的是设置初始值。angular2 - 如何设置选择框的初始值

[ { "id": "1", "name": "USD" }, { "id": "2", "name": "EUR" }] 

<select [(ngModel)]="model_initials.currency" (ngModelChange)="onChange($event)" class="custom-select form-control"> 
      <option [ngValue]="i" *ngFor="let i of basecurrency" [ngModel]="{selected: model_initials.currency.id == 'i.id'}">{{i.name}}</option> 
      </select> 

假设我想要id:2那么我该如何设置?

我得到这个错误:

平台browser.umd.js:1900原来的异常:没有价值访问为“”

回答

2

下面尝试,

<select (change)="onChange($event.target.value)"> 
    <option *ngFor="let i of basecurrency" 
      [value]="i" 
      [selected]="model_initials.currency.id == i.id" 
      > 
      {{i.name}} 
     </option> 
    </select> 

希望这有助于!

+0

哇..大我一直在为此而苦苦挣扎。谢谢! – Tampa

+0

但$ event.target.value在change事件上返回[object Object]。那是什么?我如何获得新的选定值? – Tampa

+0

它返回整个对象,这取决于你需要什么,你可以使用事件中对象的属性。 –

1

使用三级条件设置“选择”属性。

事情是这样的:

<select [(ngModel)]="model_initials.currency"> 
    <option *ngFor="let i of baseCurrency" [attr.value]="i" [attr.selected]="i.id === 2 ? true : null">{{ i.name }}</option> 
</select>