Пустой корневой объект управления в FormBuilder - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть следующая форма:

return this.fb.group({

      'day':['', [Validators.required, Validation.ruleLeaveValidator]],
      'month': ['', []],
      'year': ['', [Validators.maxLength(4), Validators.min(1920)
    });

И пользовательские проверки правил ruleLeaveValidator :

static ruleLeaveValidator(control: FormControl): ValidationErrors | null {
    console.log(root.controls);
}

Почему нет объекта root.controls?

Ответы [ 2 ]

0 голосов
/ 01 сентября 2018

Хотя я не знаю, как вы используете, но вы можете сделать пользовательскую проверку, как это также:

private ruleLeaveValidator(): ValidatorFn {
    return (control: AbstractControl): Observable<{ [key: string]: any }> => {
        if(checkIsInvalid)
        {
            return { 'errorName': true };
        } else {
            return null;
        }
    };
}

И используйте как это:

return this.fb.group({
  'day':['', [Validators.required], this.ruleLeaveValidator()],
  'month': ['', []],
  'year': ['', [Validators.maxLength(4), Validators.min(1920)
});
0 голосов
/ 01 сентября 2018

Вы можете использовать control здесь:

static ruleLeaveValidator(control: FormControl) {
    console.log(control.value);

        if (control.value != null) {
            const matches = 'your_date_validation;
            return matches ? null : { 'invaliddate': true };
        } else {
            return null;
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...