基于其他字段值的角度2验证?

Aru*_*esh 4 angular2-forms angular2-formbuilder angular

我尝试基于其他字段验证表单字段值,所以我写了一个自定义验证器,当我试图获取其他字段时抛出错误我尝试了以下代码,请帮助我提前感谢

   export class CreatesessionComponent implements OnInit {

      eventform : FormGroup ;

     constructor(private formBuilder: FormBuilder) {

       }


      ngOnInit() {

       this.eventform = this.formBuilder.group({
          eventname : new FormControl(''[Validators.required,Validators.pattern('[A-Za-z]+')]), 
          userlive : new FormControl('',[Validators.required,this.maxuser]),
          totaluser :new FormControl('',[Validators.required,this.totaluser])

       });
      }

totaluser(control : FormGroup) : {[s:string ]: boolean} {
  console.log(control.controls['eventname'].value)
//  if(control.value > 20){
//    return { total : true };
//  }
return null;
}
Run Code Online (Sandbox Code Playgroud)

在控制台中出错,因为无法读取'eventname'未定义的属性

小智 7

我目前正在做这样的事情.为了让它工作,我得到控件组,然后搜索该组以获得所需的控件

totaluser(control : AbstractControl) : {[s:string ]: boolean} {
  const group = control.parent;
  if (group) {
    console.log(group.controls['eventname'].value)
  }
  return null;
}
Run Code Online (Sandbox Code Playgroud)

  • 似乎验证器运行了多次,也就是在初始化字段时,所以我得到了错误:`无法读取未定义的属性'控件'.因此,需要先验证父级是否未定义,然后再进行验证. (2认同)