невозможно скомпилировать код при использовании useValue в провайдере - PullRequest
0 голосов
/ 26 августа 2018

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

Это форма регистрации, и я пытаюсь создать собственный валидатор. Функции проверки в helper.service.ts. Я хочу проверить поле verify password другим способом и создал функцию validateVerifyPassword в helper.service.ts. В то время как все остальные поля проверяются с использованием функций Validators.... в signup-component.components.ts, я хочу проверить поле verify password с помощью пользовательской директивы в 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 >

Но код не компилируется, когда я добавляю providers в validate-verify-password.directive.ts.

providers: [
    { provide: NG_VALIDATORS, useValue:validateVerifyPassword, multi: true }
  ]

Что я делаю не так? Ошибка Error in src/app/validate-verify-password.directive.ts (8:39) validateVerifyPassword is not defined Evaluating src/app/validate-verify-password.directive.ts Evaluating src/app/app.module.ts Evaluating src/main.ts Booting application

1 Ответ

0 голосов
/ 26 августа 2018

Я смог решить это. Я определил validateVerifyPassword в HelperService классе в helper.service.ts, т.е.

export class HelperService {
validateVerifyPassword() {
}
}

Я должен был определить это как функцию вне класса

export class HelperService {
}
function validateVerifyPassword() {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...