Tôi khá mới để angular2 và trong vài ngày qua, tôi đã cố gắng để tạo ra các thành phần hình thức tái sử dụng sử dụng mô hình điều khiển hình thứcthành phần tái sử dụng trong các hình thức mô hình điều khiển angular2
Vì vậy, cho phép nói rằng chúng ta có một thành phần componentA.component.ts
@Component({
selector: 'common-a',
template: `
<div [formGroup]="_metadataIdentifier">
<div class="form-group">
<label>Common A[1]</label>
<div>
<input type="text" formControlName="valueA1">
<small>Description 1</small>
</div>
<div class="form-group">
<label>Common A[2]</label>
<div>
<input type="text" formControlName="valueA2">
<small>Description 2</small>
</div>
</div>
`
})
export class ComponentA implements OnInit{
@Input('group')
public myForm: FormGroup;
constructor(private _fb: FormBuilder) {
}
ngOnInit() {
this.myForm = this._fb.group({
valueA1 : ['', [Validators.required]],
valueA2 : ['', [Validators.required]],
});
}
}
Và một thành phần B componentB.component.ts
@Component({
selector: 'common-b',
template: `
<div [formGroup]="_metadataIdentifier">
<div class="form-group">
<label>Common B</label>
<div>
<input type="text" formControlName="valueB">
<small>Description</small>
</div>
</div>
`
})
export class ComponentB implements OnInit{
@Input('group')
public myForm: FormGroup;
constructor(private _fb: FormBuilder) {
}
ngOnInit() {
this.myForm= this._fb.group({
valueB : ['', [Validators.required]]
});
}
}
câu hỏi của tôi là như thế nào ca n Tôi soạn một biểu mẫu sử dụng hai thành phần phụ này mà không cần di chuyển sự kiểm soát của các đầu vào đến thành phần chính. Ví dụ một main.component.ts
@Component({
selector: 'main',
template: `
<form [formGroup]="myForm" (ngSubmit)="onSubmit(myForm.value)">
<div>
<common-a [group]="formA"></common-a>
<common-b [group]="formB"></common-b>
<div>
<button>Register!</button>
</div>
</div>
</form>
`
})
export class Main implements OnInit{
@Input('group')
public myForm: FormGroup;
public formA : FormGroup;
public formB : FormGroup;
constructor(private _fb: FormBuilder) {
}
ngOnInit() {
this.myForm = this._fb.group({
//how can I compose these two sub forms here
//leaving the form control names agnostic to this component
});
}
}
Khái niệm đằng sau ý tưởng này là để xây dựng nhiều hình thức phức tạp mà chia sẻ một số khối xây dựng của họ.
Đó là, tôi không muốn thành phần Main
tôi biết tên của các formControlNames
[valueA1
, valueA2
, valueB
] nhưng Automagically chèn chúng và cập nhật/xác nhận vào nhóm hình thức cấp cao nhất.
Bất kỳ ý tưởng hoặc điểm nào để đi đúng hướng sẽ hữu ích.
Cảm ơn rất nhiều, điều này thực sự hữu ích và mở mắt :) – stevengatsios
Mới đến góc cạnh và bắt đầu với các biểu mẫu định hướng mô hình ngay lập tức. Ngoài sự tò mò, đây có phải là phương pháp chia sẻ * FormGroup * các trường tiếp cận được đề nghị hoặc một cách giải quyết? Tôi đang xây dựng một hệ thống phức tạp và tôi cố gắng tập trung phát triển các thành phần nhỏ và sau đó tái sử dụng chúng trong mối quan hệ cha-con (4-5 cấp độ). – Raf