0

我有 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()方法中获取值?

谢谢!

4

1 回答 1

1

在父组件中,您必须为子组件提供 formControlName,并在 formBuilder 中包含子组件。

      <my-child formControlName="account"></my-child>

在孩子中,您实现 ControlValueAccessor 接口。

例如,试试这个 plunker

于 2016-09-07T16:32:08.433 回答