繁体   English   中英

Angular Material md-select不显示预填充值

[英]Angular Material md-select don't show value on prepopulate

我有一个嵌套的表单,一个组中的一个组:

this.formBuilder.group({
        ...
        placeFirst: this.formBuilder.group({valy: ['', Validators.required]}),
        ...
    })

当我想用预先填充的数据更新表单时:

this.listingForm.get('placeFirst.valy').setValue(listing.placeFirst);

表单已预先填充,因为我可以看到该字段填充了json管道,但md-select却未显示标题。 HTML是:

<div formGroupName="placeFirst">
  <md-select placeholder="Place" formControlName="valy" (change)="creator.placeFirstSelected($event.value)">
    <md-option *ngFor="let placeFirst of creator.placesFirst" [value]="placeFirst">
      {{placeFirst.title}}
    </md-option>
  </md-select>
</div>

如果我使用“选择”和“选项”而不是“ md-选择”和“ md-option”,则可以看到当前选择的选项的标题。

正如@ developer033在评论中所说,问题是标记为已选择的对象与列表中的对象不相等。 由于问题仍然存在( github ),我现在的解决方法是仅使用键过滤列表:

    const placeFirst = this.placesFirst.filter(el => el.key === placeFirstKey)[0];
    this.listingForm.get('placeFirst.valy').setValue(placeFirst);

暂无
暂无

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

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