Получение ошибки во время выполнения при создании пользовательской директивы проверки формы управления - PullRequest
0 голосов
/ 26 августа 2018

Код доступен на https://stackblitz.com/edit/angular-jx7fdu

Это форма регистрации, и я пытаюсь создать собственный валидатор. Функции проверки находятся в helper.service.ts. Я хочу проверить поле подтверждения пароля другим способом и создал функцию validateVerifyPassword в helper.service.ts. В то время как все другие поля проверяются с использованием функций Validators .... в signup-component.components.ts, я хочу проверить поле подтверждения пароля с помощью пользовательской директивы в signup-component.component.html.

другие поля

lastName:[null,[Validators.required,Validators.pattern(/[A-Za-z]+/)]], 
email:[null,[Validators.required,Validators.pattern(this.EMAIL_PATTERN)]],       
password:[null,[Validators.required,Validators.minLength(8),this.helper.validatePassword]]

поле подтверждения пароля

<input id="verify-password" type="password" class="form-control" formControlName="confirmPassword" [ngClass]="validateField('confirmPassword')" ngModel validateVerifyPassword >

Но я вижу ошибку времени выполнения в окне консоли. Что я делаю неправильно? Ошибка

preview-1f727e0cbae2a3ba41a0a.js:1 ERROR TypeError: Cannot read property 'validate' of undefined at normalizeValidator (normalize_validator.ts:13) at Array.map (<anonymous>) at composeValidators (shared.ts:144) at FormControlName.get [as validator] (form_control_name.ts:226) at setUpControl (shared.ts:39) at FormGroupDirective.addControl (form_group_directive.ts:100) at FormControlName._setUpControl (form_control_name.ts:245) at FormControlName.ngOnChanges (form_control_name.ts:203) at checkAndUpdateDirectiveInline (provider.ts:201) at checkAndUpdateNodeInline (view.ts:429) console.(anonymous function) @ preview-1f727e0cbae2a3ba41a0a.js:1 View_SignupComponentComponent_0 @ SignupComponentComponent.html:33 proxyClass @ metadata_resolver.ts:91 DebugContext_.logError @ services.ts:598 `ERROR CONTEXT DebugContext_ {view: {…}, nodeIndex: 54, nodeDef: {…}, elDef: {…}, elView: {…}}

одна из строк ошибок указывает на View_SignupComponentComponent_0 @ SignupComponentComponent.html:33, где я использую директиву <input id="verify-password" type="password" class="form-control" formControlName="confirmPassword" [ngClass]="validateField('confirmPassword')" ngModel validateVerifyPassword >

Я подозреваю, что проблема может заключаться в том, что моя форма является формой Reactive, но я полагаю, что я мог бы использовать пользовательские проверки с использованием Директив только для форм Template. Это тот случай?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...