Angular 来自@Input的被动表单设置值

Angular 来自@Input的被动表单设置值,angular,angular-reactive-forms,Angular,Angular Reactive Forms,我想为被动表单控件做双向绑定。首先,我需要设置从@Input data接收的值 实际结果是,当我设置静态字符串时,它工作正常 父组件HTML <ng-template [ngSwitchCase]="'edit'"> <app-edit class="flex-auto" (editItem)="disciplineAfterView($event)" [discipline] = "selectedItem"></app-edit>

我想为被动表单控件做双向绑定。首先,我需要设置从@Input data接收的值

实际结果是,当我设置静态字符串时,它工作正常

父组件HTML

<ng-template [ngSwitchCase]="'edit'">
          <app-edit class="flex-auto" (editItem)="disciplineAfterView($event)" [discipline] = "selectedItem"></app-edit>
      </ng-template>
<form [formGroup]="disciplineForm">

      <app-input-multilang [title]="'Discipline'" [form]="disciplineForm" [en]="'discipline_en'" [de]="'discipline_de'">
      </app-input-multilang>

    </form>
这里是@Input规程对象值

name: {en: "44", de: "44"}

尝试在
ngOnChanges()中设置表单值

您可以为输入属性编写setter,并在设置值后编写setValue。或者您可以在
ngOnChanges
中写入设置值

只要输入属性发生更改,就会调用
ngOnChanges

例如对于ngOnChanges

ngOnChanges(changes: SimpleChanges) {
  if (changes && changes.discipline && changes.discipline.currentValue) {
    this.disciplineForm.get('discipline_en').setValue(this.discipline.name.en);
  }
}

只要试试
patchValue
patchValue就行了,它帮不了他。请添加您的html文件html已更新。请检查
this.practice.name.en
是否在您指定它的位置定义。selectedItem何时获得值?这在页面加载时工作正常。但我正在寻找需要在@Input规程changes@klmuralimohan然后必须将其设置为ngOnChanges()。找到更新的答案
ngOnChanges(changes: SimpleChanges) {
  if(changes['discipline']) {
    this.disciplineForm.get('discipline_en').setValue(this.discipline.name.en);
  }
}
ngOnChanges(changes: SimpleChanges) {
  if (changes && changes.discipline && changes.discipline.currentValue) {
    this.disciplineForm.get('discipline_en').setValue(this.discipline.name.en);
  }
}