简体   繁体   English

在值是对象时,在md-select上设置默认值Angular4 Angular-Material

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

I'm trying to pass an object, rather than a string, out of an md-select change event. 我正在尝试从md-select change事件中传递对象,而不是字符串。 This works fine, however, I am unable to preselect a value on load: 这可以正常工作,但是,我无法在加载时预先选择一个值:

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

This doesn't work: 这不起作用:

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

Nor does this: 这也不是:

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

Is there a way to preselect a value on load, when value is an object? 当值是对象时,是否有一种方法可以预选加载的值? Seems like a common use case. 好像是一个普通的用例。

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

If you deal with object value you should select the same object reference. 如果处理对象值,则应选择相同的对象引用。 So you can do it as follows: 因此,您可以执行以下操作:

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

selectedValue = this.foods[0];

Fixed Plunker 固定柱塞

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM