我有2个表格。一个父母表格,一个儿童表格。它看起来像这样:
<form [formGroup]="form" (submit)="makeSomething()">
<input type="text" formControlName="test" />
<some-form-component></some-form-component>
<input type="submit" />
</form>
对于some-form-component
我使用这样的文件:
<form [formGroup]="form">
<input type="text" formControlName="somechildfield" />
</form>
我父组件的组件如下所示:
import {Component, OnInit} from "@angular/core";
import {FormBuilder} from "@angular/forms";
@Component({
selector: 'my-parent-form',
templateUrl: 'my-parent.form.html'
})
export class ParentFormComponent implements OnInit {
private form: any;
constructor(private builder: FormBuilder) {}
ngOnInit(): void {
this.form = this.builder.group({
'test': [''],
});
}
makeSomething() {
console.log( this.form.value );
}
}
SomeFormComponent在没有makeSomething
方法的情况下看起来很相似
我的问题是:当我在makeSomething()
方法中获取值时如何?
谢谢!
答案 0 :(得分:1)
在父级中,您必须为子组件提供formControlName,并在formBuilder中包含子组件。
<my-child formControlName="account"></my-child>
在child中,您实现了ControlValueAccessor接口。
例如,尝试this plunker