0

我有一个嵌套形式,一个组内的一个组:

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>

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

4

1 回答 1

0

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

    const placeFirst = this.placesFirst.filter(el => el.key === placeFirstKey)[0];
    this.listingForm.get('placeFirst.valy').setValue(placeFirst);
于 2017-07-24T09:40:56.293 回答