【发布时间】:2018-08-18 00:32:19
【问题描述】:
Mobile mobileNumberValidator 返回正常,但其他两个验证器在错误时返回 null 承诺。无法识别我在这里所做的错误。请帮忙。 这两个验证器在 formbuilder 对象中设置错误如下
错误 : {__zone_symbol__state: null, __zone_symbol__value: Array(0)}
在表单生成器组中
this.empInfoForm = this.fb.group({
'Mobile': [null, [Validators.required], [this.mobileNumberValidator.bind(this)]],
'Private': [null, [this.privateNumberValidator.bind(this)]],
'Work': [null, [this.workNumberValidator.bind(this)]],
});
验证器方法
mobileNumberValidator(control: AbstractControl) {
return new Promise(resolve => {
setTimeout(() => {
if (!this.isMobileNumberValid) {
resolve({
'phoneNumber': true
})
console.log(this.empInfoForm)
} else {
resolve(null);
}
}, 10);
})
}
workNumberValidator(control: AbstractControl) {
return new Promise(resolve => {
setTimeout(() => {
if (!this.isWorkNumberValid) {
resolve({
'phoneNumber': true
})
console.log(this.empInfoForm)
} else {
resolve(null);
}
}, 10);
})
}
privateNumberValidator(control: AbstractControl) {
return new Promise(resolve => {
setTimeout(() => {
if (!this.isPrivateNumberValid) {
resolve({
'phoneNumber': true
})
console.log(this.empInfoForm)
} else {
resolve(null);
}
}, 10);
})
}
【问题讨论】:
标签: angular validation typescript asynchronous promise