如何在Angular 4中将组件声明为FormControl?

如何在Angular 4中将组件声明为FormControl?,angular,typescript,Angular,Typescript,我试图将一个组件声明为表单控件 <my-child-component formControlName="selectedSeats"></my-child-component> 我正在尝试将this.myForm.get('selectedSeats').value的值作为组件值传递,并尝试绑定到formcontrolname。但是这个代码不工作,也没有抛出错误 有人能告诉我如何将this.myForm.get('selectedSeats').value值设置为我的

我试图将一个组件声明为表单控件

<my-child-component formControlName="selectedSeats"></my-child-component>
我正在尝试将this.myForm.get('selectedSeats').value的值作为组件值传递,并尝试绑定到formcontrolname。但是这个代码不工作,也没有抛出错误

有人能告诉我如何将this.myForm.get('selectedSeats').value值设置为我的子组件值并传递给formcontrol吗


父组件是动态反应式嵌套形式。在父窗体中,我调用另一个子组件,它有自己的窗体集,它将返回一个值,并存储在selectedSeats输入字段中。所以现在我需要将该字段值传递给父级,并使用formcontrol绑定父级嵌套表单。

您应该使用formcontrol对象而不是formControlName。在组件中创建输入并获取对象。您的代码如下所示:

export class MyChildComponent {
  @Input() formControlObject: FormControl;

  getControlValue(){
    return this.formControlObject.value;
  }
}
<my-child-component [formControlObject]="myForm.controls['selectedSeats']"></my-child-component>
现在,将对象传递到此组件,如下所示:

export class MyChildComponent {
  @Input() formControlObject: FormControl;

  getControlValue(){
    return this.formControlObject.value;
  }
}
<my-child-component [formControlObject]="myForm.controls['selectedSeats']"></my-child-component>


希望它能有所帮助

只是一个问题:为什么要这样做?父组件是动态反应式嵌套表单。在父窗体中,我调用另一个子组件,它有自己的窗体集,它将返回一个值,并存储在输入字段中。因此,现在我需要获取该字段值并将父嵌套表单绑定为formcontrol。我认为您应该基于模型而不是组件创建反应式表单,这对您来说会更容易。您必须在组件元数据中提供值访问器,如:
provide:[{NG_value_访问器,useExisting:forwardRef()=>CustomInputComponent),multi:true}]
yes已经完成了:(