如何在角度4中使用formcontrolname选择md-select中的值

时间:2017-09-24 08:56:09

标签: angular angular-material md-select

我正在使用反应形式和角度材料“md-select。”

这是我的表格

<md-select placeholder="Parent Category" class="full-width" formControlName="parent_id">
  <md-option>None</md-option>
  <md-option *ngFor="let category of plainCategories" [value]="category.id">
    <span *ngIf="category.subcategory.length==0">&nbsp;</span>{{ category.name }}
  </md-option>
</md-select>

我想从代码中设置md-select值,这就是我试过的

onClicked(e){
  if (e && e.action == 'edit') {

    let item = {
      id: e.item.id,
      name: e.item.name,
      slug: e.item.slug,
      parent_id: e.item.parent_id
    };

    this.categoryForm.setValue(item);
  }
} 

这是更新表单值({{categoryForm.val | json}}显示值集)但select选项未显示选中的选项。我如何选择md-option?

enter image description here

1 个答案:

答案 0 :(得分:1)

如果要更新的字段集不是表单中声明的​​那样(例如,如果还有category元素,除了idname,{{1} }和slug),然后parent_id无效,请改用setValue()

patchValue()

您还可以为每个字段设置值:

this.categoryForm.patchValue(item);

请参阅我的示例plunker:https://plnkr.co/edit/PftFkCQ5fvLICczt7gAO?p=preview