首页 > 解决方案 > 在 Provider 中使用 useValue 时无法编译代码

问题描述

该代码可在https://stackblitz.com/edit/angular-xesgxe

这是一个注册表单,我正在尝试创建一个自定义验证器。验证函数在helper.service.ts. 我想以verify password不同的方式验证该字段并validateVerifyPasswordhelper.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

标签: angular6

解决方案


我能够解决它。我在ie的课堂上定义validateVerifyPasswordHelperServicehelper.service.ts

export class HelperService {
validateVerifyPassword() {
}
}

我应该把它定义为类外的一个函数

export class HelperService {
}
function validateVerifyPassword() {
}

推荐阅读