在md-select上设置默认值。当Value是Object Angular4 Angular-Material时

时间:2017-06-16 19:45:14

标签: javascript angular angular-material2 md-select

我试图从md-select更改事件中传递一个对象而不是一个字符串。这工作正常,但是,我无法在加载时预先选择一个值:

<md-select 
  [(ngModel)]="selectedValue" 
  name="food"
  (change)="onSelectionChange($event)"
>
  <md-option *ngFor="let food of foods" [value]="food">
    {{food.viewValue}}
  </md-option>
</md-select>

这不起作用:

selectedValue: {value: 'steak-0', viewValue: 'Steak'};
[(ngModel)]="selectedValue" 

这也不是:

selectedValue:'steak-0';
[(ngModel)]="selectedValue.value" 

当值是对象时,有没有办法在加载时预选值?似乎是一个常见的用例。

https://plnkr.co/edit/IkAnPj4ABsWOM4mpqqK4?p=preview

1 个答案:

答案 0 :(得分:1)

如果处理对象值,则应选择相同的对象引用。所以你可以这样做:

foods = [
  {value: 'steak-0', viewValue: 'Steak'},
  {value: 'pizza-1', viewValue: 'Pizza'},
  {value: 'tacos-2', viewValue: 'Tacos'}
];

selectedValue = this.foods[0];

<强> Fixed Plunker