コントロールグループの仕組みを理解するのに助けてくれる人がいますか?Angular2 rc1:ネストされたControlGroupを使用する方法?
import { Component, OnInit } from "@angular/core";
import { FORM_DIRECTIVES, FormBuilder, ControlGroup } from "@angular/common";
import { NestedFieldset } from "./nested.fieldset.component";
@Component({
selector: 'my-app',
directives: [
NestedFieldset
],
template: `
<form (ngSubmit)="onSubmit()" [ngFormModel]="form">
<nested-fieldset ngControlGroup="abFields" [parentForm]="form"></nested-fieldset>
<label>field c: </label>
<input placeholder="fieldC" ngControl="fieldC"/> <br>
<button (ngSubmit)="onSubmit()">fancy submit</button>
</form>
`})
export class AppComponent {
form: ControlGroup;
constructor(private fb: FormBuilder) {
this.form = fb.group({
abFields: NestedFieldset.getControlGroup(fb),
fieldC: ['']
});
}
onSubmit(){
console.log(" fancy was submitted")
console.log(this.form.value)
}
}
nested.fieldset.component.ts:
import { Component, Input } from "@angular/core";
import { TranslatePipe } from "ng2-translate/ng2-translate";
import { FormBuilder, ControlGroup, FORM_DIRECTIVES } from "@angular/common";
@Component({
selector: 'nested-fieldset',
directives: [
FORM_DIRECTIVES],
template: `
<fieldset [ngFormModel]="parentForm">
<label>field a: </label><input placeholder="fieldA"/> <br>
<label>field b: </label><input placeholder="fieldB"/> <br>
</fieldset>
`
})
export class NestedFieldset {
@Input()
parentForm: ControlGroup;
constructor() {}
static getControlGroup(fb: FormBuilder) {
return fb.group({
fieldA: [''],
fieldB: ['']
});
}
}
ではfieldC
がOKで提出し、しかし、私 、私はこの
app.component.tsような何かをしようとしていますネストされたfieldset
(fieldA
およびfieldB
)からのアクセス値を取ります。
何が間違っていますか?
あなたはplunkerでライブの例を表示することができます。http://plnkr.co/edit/EDqloxqd8xbByejEUZZx?p=preview
を、私は非常に申し訳ありませんが、私はngControls忘れてしまいました - )。また、ネストされたフィールドセットで[ngFormModel] = "parentForm.find( 'abFields')"を使用します – karina