如何验证 angular2 中的 FormArray 长度 [英] How to Validate FormArray length in angular2

查看:38
本文介绍了如何验证 angular2 中的 FormArray 长度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 angular2 中有一个数据驱动的表单,如下所示

I have a data driven form in angular2 like below

this.formBuilder.group({
  'name': ['',Validators.required],
  'description': ['', Validators.required],
  'places': this.formBuilder.array([], Validators.minlength(1)) 
})

我想向 place formArray 添加验证,所以我添加了 minlength 验证,但 minlength 验证不适用于 formArray.

I want to add validations to the place formArray, so i am adding minlength validation, but minlength validation is not working on formArray.

formArray 的其他验证是什么,因此只有当 Places 数组包含至少一个地方时,该表单才有效.

What are the other validations for formArray, so that form must be valid only when places array contain atleast one place.

推荐答案

Validators.required 为您创造奇迹:

// using required 

this.formGroup = this.formBuilder.group({
    taskTreeId: [Common.UID()],
    executionProgrammedTime: ["", [Validators.required]],
    description: [""],
    tasks: this.formBuilder.array([], Validators.required)
});  

// using custom validation

export const minLengthArray = (min: number) => {
  return (c: AbstractControl): {[key: string]: any} => {
    if (c.value.length >= min)
      return null;

    return { MinLengthArray: true};
  }
}

 this.formGroup = this.formBuilder.group({
        taskTreeId: [Common.UID()],
        executionProgrammedTime: ["", [Validators.required]],
        description: [""],
        tasks: this.formBuilder.array([], minLengthArray(2))
    });

<button type="button" class="btn btn-success btn-rounded" 
    [disabled]="!formGroup.valid">SAVE</button>

这篇关于如何验证 angular2 中的 FormArray 长度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆