2017-06-13 12 views

回答

2

你應該嵌套的FormArrayFormGroup這樣的:

export class AppComponent implements OnInit { 
    public formG: FormGroup; 
    public formArray: FormArray; 

    constructor(private fb: FormBuilder) { } 

    ngOnInit() { 
     this.createForm(); 
    } 


    createForm() { 
     this.formArray = this.fb.array([ 
     this.fb.control(1), 
     this.fb.control(2), 
     this.fb.control(3), 
     this.fb.control(4), 
     this.fb.control(5), 
     ]); 
     this.formG = this.fb.group({ 
     farray: this.formArray 
     }); 
     console.log(this.formArray); 
    } 

    addQuestion() { 
     this.formArray.push(this.fb.control('')); 
    } 

    removeQuestion(i) { 
     this.formArray.removeAt(i); 
    } 
} 

而且模板:

<div class="container" [formGroup]="formG"> 
    <div formArrayName="farray"> 
    <div class="row form-inline" *ngFor="let question of formArray.controls; let i = index"> 
     <textarea class="form-control" [formControlName]="i"></textarea> 
     <button (click)="removeQuestion(i)" class="btn btn-secondary">Remove</button> 
    </div> 
    </div> 
</div> 
<button (click)="addQuestion()" class="btn btn-secondary">Add</button> 

形式在行動:https://embed.plnkr.co/hJ0NMmzGezjMzWfYufaV/