其他分享
首页 > 其他分享> > angular 动态form

angular 动态form

作者:互联网

<form [formGroup]="materialSearchForm">
      <div  [formArrayName]="'materialSearchDetails'" style="height: 50px;" *ngFor="let detail of materialFormArray.controls;let i = index">
        <div [formGroupName]="i"  class="row">
            <div style="text-align: left" class="col-md-2">
              <input kendoTextBox formControlName="materialNo" style="width:100%"/>
            </div>
            <div style="text-align: left"  class="col-md-5">
              <input kendoTextBox formControlName="materialName" style="width:100%"/>
            </div>
            <div style="text-align: left"  class="col-md-2">
              <input kendoTextBox formControlName="ZMAT" style="width:100%"/>
            </div>
            <div style="text-align: left"  class="col-md-2">
              <input kendoTextBox formControlName="BPU" style="width:100%"/>
            </div>
            <div  class="col-md-1">
              <span class="k-icon k-i-close" style="color:red;float: right;font-size: 30px;cursor: pointer" (click)="delRow(i)"></span>
            </div>
        </div>
      </div>
</form>

在module中引入ReactiveFormsModule,不然会报错

import { FormsModule,ReactiveFormsModule } from '@angular/forms';

 imports: [
    SharedModule,
    FormsModule,
    ReactiveFormsModule,
    SampleRoutingModule
  ],
 public materialSearchForm:FormGroup
  public materialFormArray:FormArray 

 constructor(private fb: FormBuilder) {
    this.materialFormArray= this.fb.array([]);
    this.materialSearchForm = this.fb.group({
      materialSearchDetails:  this.materialFormArray
    });
    this.operateFormArray();
   }

operateFormArray(index?)
{
 let formArray=this.materialSearchForm.get('materialSearchDetails') as FormArray;
 if(index!=null)
 {
  formArray.removeAt(index);
 }
 else
 {
  formArray.push(this.fb.group({
    materialNo: ['', Validators.required], 
    materialName: ['', Validators.required], 
    ZMAT: ['', Validators.required], 
    BPU: ['', Validators.required], 
   }));  
 }
 console.log(formArray.value);
}

标签:index,form,required,formArray,fb,Validators,动态,angular,materialSearchForm
来源: https://blog.csdn.net/xiaomifengmaidi1/article/details/100540570