在Angular 2中,我有一个包含输入的子组件。我想将此输入(控件)添加到父组件表单(NgForm)中。
目前,为了简单起见,我正在使用模板驱动表单。
我看到了这个答案,但认为它可能已过时:在Angular 2中将控件添加到父组件的表单 子组件模板: formInputName是一个输入绑定,以便我可以重用此组件并动态添加'name'属性。
在父组件中,我有一个表单的实例:
目前,为了简单起见,我正在使用模板驱动表单。
我看到了这个答案,但认为它可能已过时:在Angular 2中将控件添加到父组件的表单 子组件模板: formInputName是一个输入绑定,以便我可以重用此组件并动态添加'name'属性。
<input class="text-input" [name]="formInputName" [id]="formInputName" type="text" [(ngModel)]="searchValue"
(change)="onChange(searchValue)"
(blur)="onBlur()"
(focus)="onFocus()"
[required]="isRequired">
在父组件中,我有一个表单的实例:
@ViewChild('testForm') testForm: NgForm;
我该如何将子组件控件添加到此 NgForm 实例中?我不确定如何使用 addControl 完成它。不确定需要在模板中添加什么,或者如何在控制器中以编程方式完成。
Plunker: https://plnkr.co/edit/rDluyJduyHF7vclK9wRE?p=preview
test-component
组件实现ControlValueAccessor
。请参阅在 Angular 表单中实现 ControlValueAccessor 时再也不会感到困惑。阅读文章后,您可以编辑您的问题以添加一些澄清。 - Max Koretskyi