あなたの親にあなたの全体の形を構築する必要があり、その後、ちょうど子供や孫にインナーFormGroupsを渡します。
<subapp-vendor #vendortest [vendorDetails]='myForm.controls.vendorDetails'></subapp-vendor>
とformgroupのためにベンダーに@Inputを使用します:ベンダーのコンポーネントにvendorDetailsグループを渡し、
ngOnInit() {
this.myForm=this._fb.group({
subAppName: ['', [Validators.required]],
vendorDetails: this._fb.group({
buildType: [''],
primaryLang: [''],
product: this._fb.group({
vendorName: [''],
productName: ['']
})
}),
subAppType:['', [Validators.required]],
});
}
そして、あなたの親から:だからあなたの親が全体のフォームを構築
@Input() vendorDetails: FormGroup;
このビューのformGroup名と、親で定義したformcontrolnamesを使用します。ここではまた、あなたが親から行ったように、このchildcomponentの子コンポーネントにインナーformGroupを渡す:
<div [formGroup]="vendorDetails">
<label>Built Type</label>
<div class="radio" *ngFor="let buildType of buildTypes">
<label>
<input type="radio" formControlName="buildType" [value]="buildType.value">
{{buildType.display}}
</label>
</div>
<subapp-product #producttest [product]="vendorDetails.controls.product"></subapp-product>
<label>Primary Language</label>
<input type="text" class="form-control" formControlName="primaryLang">
</div>
aaaand、その後の進路使用@Inputおよび製品コンポーネントのビューでformGroup product
ちょうど上記のような。ここで
はあなたforked plunker
使用 '@ output'デコレータhttp://learnangular2.com/outputs/ – Smit
あなたplunker例に基づいて、あなたの記事を更新することができますが、親...子供の代わりに**です。子ども1 .. ** – Aravind