【问题标题】:Set default value on md-select When Value is an Object Angular4 Angular-Material当值为对象Angular4 Angular-Material时,在md-select上设置默认值
【发布时间】:2017-06-16 19:45:13
【问题描述】:

我试图从 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

【问题讨论】:

  • ngModel是个聪明的工具,但你没用对吗?

标签: javascript angular angular-material2 md-select


【解决方案1】:

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

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

selectedValue = this.foods[0];

Fixed Plunker

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 2016-02-20
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多