在 md-select 上设置默认值 When Value is an Object Angular4 Angular-Material

Set default value on md-select When Value is an Object Angular4 Angular-Material

我试图从 md-select 更改事件中传递对象而不是字符串。这工作正常,但是,我无法在加载时预 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" 

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

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

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

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

selectedValue = this.foods[0];

Fixed Plunker