FormArray
kéo dài AbstractControl
vì vậy nó có valueChanges
tài sản mà phát ra chanes.
this.form = this.fb.group({
providers: this.fb.array([]),
});
(this.form.get('providers') as FormArray).push(new FormControl('', Validators.required));
(this.form.get('providers') as FormArray).push(new FormControl('', Validators.required));
(this.form.get('providers') as FormArray).valueChanges.subscribe(values => {
console.log(values);
});
Trong mẫu của bạn:
<input *ngFor="let field of form.controls.providers.controls;" [formControl]="field">
Các values
trong đăng ký sẽ trả về một mảng với giá trị của từng lĩnh vực đầu vào khi bất kỳ thay đổi (về mặt ngữ pháp hoặc từ giao diện người dùng).
Trong trường hợp nếu có FormGroup
trong FormArray
không có thay đổi nào. chỉ cần sử dụng mã thành phần sau.
(this.form.get('providers') as FormArray).push(this.fb.group({
'name': '',
'age': ''
}));
và mẫu sẽ là:
<div *ngFor="let field of form.controls.providers.controls;" [formGroup]="field">
<input formControlName="name" placeholder="name">
<input formControlName="age" placeholder="age">
</div>
đây là plunker
Bạn cần phải đăng ký thành phần bên trong mảng cung cấp như một nhóm khác để phát hiện nó. –
bạn có thể giải thích nó không? –
Yếu tố của các nhà cung cấp là gì? –