在FormArray反应性表单中,设置值不得小于0

时间:2018-08-08 01:01:05

标签: angular angular-reactive-forms angular-forms angular4-forms angular-formbuilder

我已经成功地将“ quantityControl” formControlName中输入字段中的值实现为不小于1。但是我的问题是在formArray上的时候。如何将其设置为不小于0或不为负数?

这是下面的代码以及指向我的stackblitz的链接 CODE LINK

this.inquiryForm.get('quantityControl').valueChanges.pipe(
          filter(quantity => quantity < 1)
    ).subscribe(value => {
      console.log(value);

      this.inquiryForm.get('quantityControl').setValue(1);
    });

1 个答案:

答案 0 :(得分:0)

为了更好地理解onPerformSync()表格。

使用compose()使用多个自定义验证来配置输入字段。

this.form = formBuilder.group({
        formControlNameValue:['', Validators.compose([Validators.required, positiveVal ])
        ]});

并实现positiveVal

static positiveVal(control:Control):{ [key: string]: any; } {
  if (Number(control.value) < 0) {
    return {nonZero: true};
  } else {
    return null;
  }
}