Angular动态表单

要实现Angular动态表单,主要使用formArray方法,formArray生成的实例是一个数组,在这个数组中可以动态的放入formGroup和formControl,这样便形成了动态表单。

export class ReativeFormsComponent implements OnInit {
  ngOnInit() {
    this.addContact()
  }
  //动态表单
  personMess: FormGroup = new FormGroup({
    //生成动态表单数组
    contacts: new FormArray([]) 
  })
  //获取数组对象
  get contacts(){
    return this.personMess.get('contacts') as FormArray
  }
  //增加一个表单组
  addContact(){
    let myContact = new FormGroup({
      name: new FormControl(),
      phone: new FormControl()
    })
    this.contacts.push(myContact)
  }
   //删除一个表单组
  deleteContact(i:number){
    this.contacts.removeAt(i)
  }
  //提交表单
  OnSubmit() {
    console.log(this.personMess.value)
  }
}
<form [formGroup]="personMess" (submit)="OnSubmit()">
  <div formArrayName="contacts">
    <!-- 注意:这里遍历的时contacts.controls -->
    <div *ngFor="let contact of contacts.controls;let i =index" [formGroupName]="i">
      <input type="text" formControlName="name">
      <input type="text" formControlName="phone">
      <button (click)="deleteContact(i)">删除信息</button>
    </div>
  </div>
  <button (click)="addContact()">添加信息</button><br>
  <input type="submit">
</form>

效果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值