ng2 dynamic在DynamicFormGroupModel上形成自定义异步验证

时间:2017-07-27 05:30:49

标签: angular validation dynamic-forms

我正在使用ng2-dynamic-forms,我无法理解asyncvalidation如何与动态表单组模型一起使用。

我找不到asyncvalidator作为DynamicFormControlModel属性的示例(请参阅:asyncValidator api doc

最终目标是制作一个“异步验证器”来检查 areasGroup 的区域输入值,并检查subArea是否小于 mainArea

我已经完成了此plunker来测试asyncvalidation,但它不起作用。

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

感谢Avnesh Shakya我找到答案: 在DynamicFormGroupModel属性中,我们必须设置:

asyncValidator : {areaGroupValidator:areaGroupValidator}

并且在areaGroupValidator函数中我们必须返回如下函数:

export function areaGroupValidator() {
return function(formGroup: FormGroup): Promise<ValidationErrors | null> {
  let TotalArea = formGroup.controls.areaInput.value;
  let SubArea = formGroup.controls.subAreaInput.value
  if (SubArea > TotalArea) {
     return new Promise((resolve, reject) => {
        resolve({areaGroupValidator: true});
    }); 
  } else {
    return new Promise((resolve, reject) => {
        resolve(null);
    });
  }

}