我有这样的课程:
ProxyClass
EXCEPTION:未捕获(在承诺中):错误:错误:0:0引起:无法读取未定义的属性'checkPattern' TypeError:无法读取未定义的属性'checkPattern' 在GlobalValidation.urlPattern
我做错了什么?
当我把课改写为:
export class GlobalValidation {
static emailPattern(control: AbstractControl): ValidationResult {
var EMAIL_REGEXP = Pattern.EMAIL;
return this.checkPattern(control, EMAIL_REGEXP);
}
static urlPattern(control: AbstractControl): ValidationResult {
var URL_REGEXP = Pattern.URL;
return this.checkPattern(control, URL_REGEXP);
}
static checkPattern(control: AbstractControl, pattern: any) {
if (control.value != "" && !pattern.test(control.value)) {
return {"incorrectPatternFormat": true};
}
return null;
}
}
一切都很好。
似乎有些事情很明显,但我很想念。
答案 0 :(得分:2)
您使用checkPattern
呼叫this
,尽管它是静态方法。使用checkPattern
GlobalValidation.checkPattern(...)
答案 1 :(得分:2)
您无法从静态方法访问this
。使用静态类有一个目的,那就是 - 您不需要创建类的新实例来使用该方法。
您应该使用GlobalValidation.checkPatter(...)
作为Phil Cap建议或仅重写它,因此它不使用GlobalValidation类的属性。