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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值