垫选择不显示最初选择的项目

时间:2019-01-13 12:21:18

标签: angular angular-material

我正在使用<mat-select-trigger>来显示选定的项目-在这种情况下为付款方式:

<div style="padding-top: 24px;">
  <mat-form-field style="width: 100%;">
    <mat-select placeholder="Zahlungsmethode" [(value)]="selectedPaymentMethod">

      <mat-select-trigger>
        <div style="display: flex; align-items: center;">
          <img [src]="selectedPaymentMethod.imageUrl" style="align-self: center; margin: 0 8px;">
          <span>{{selectedPaymentMethod.displayText}}</span>
        </div>
      </mat-select-trigger>

      <mat-option *ngFor="let pm of paymentMethods" [value]="pm">
        <div style="display: flex; align-items: center;">
          <img [src]="pm.imageUrl" style="align-self: center; margin: 0 8px;">
          <span>{{pm.displayText}}</span>
        </div>
      </mat-option>
    </mat-select>
  </mat-form-field>
</div>

我的问题是mat-select似乎没有反映出初始值,我也不明白为什么。

constructor中,我将this.selectedPaymentMethod初始化为

if (this.currentSubscription != null) {
  this.paymentMethod = data.currentSubscription.paymentMethod;
  this.selectedPaymentMethod = this.paymentMethod;
}

但是它根本不显示。我还尝试使用[(ngModel)]代替[(value)],但是它们都不起作用。

我在这里做什么错了?

据我所知,我正在像this(Stackblitz)那样做,但是由于某种原因,它在这里不起作用。

1 个答案:

答案 0 :(得分:1)

目前尚不清楚为什么,但是所选项目应该是数组中的项目,例如:

this.selectedPaymentMethod = this.paymentMethods[0];