【发布时间】:2018-01-21 12:01:38
【问题描述】:
所以我有一个带有验证器的反应形式。我创建了自定义验证器来检查密码是否与确认密码匹配。这是它的样子:
this.form = this.formBuilder.group({
'emailAddress': new FormControl(null, [
Validators.required,
Validators.email,
this.checkEmailAddress.bind(this)
]),
'username': new FormControl(null, [
Validators.required,
Validators.maxLength(16),
this.checkUsername.bind(this)
]),
'passGroup': this.formBuilder.group({
'password': new FormControl(null, [
Validators.required
]),
'confirmPassword': new FormControl(null, [
Validators.required
])
}, {
validator: checkPassword
})
});
这是我的自定义函数:
function checkPassword(group: FormGroup): { [s: string]: boolean } {
if (group.value.password !== group.value.confirmPassword) {
return { 'passwordMismatch': true };
}
return null;
}
经过一番谷歌搜索,我发现我不应该使用 function 这个词。然而,这是令人困惑的部分。
如果我重新保存(没有任何实际更改),编译器将重新编译并且它会成功。
如果我删除函数这个词,编译器也会成功,但是我的表单的验证器会被破坏。
我也试过validator: this.checkPassword 和 validator: this.checkPassword.bind(this) 删除功能词后,但它给了我很多错误。
【问题讨论】:
标签: angular validation typescript angular5