gpt4 book ai didi

javascript - Angular 2 将参数变量传递给验证器函数

转载 作者:行者123 更新时间:2023-11-28 04:59:55 25 4
gpt4 key购买 nike

我有一个自定义验证器,需要访问本地组件的变量。在我的组件中,我有一个变量 bool 值,当用户与表单交互时它会发生变化

export class MyForm implements OnInit{
public localBool : boolean;

constructor(public fb: FormBuilder)
ngOnInit(){
this.form = this.fb.group({
field : ['', [CustomValidator.validateIfRequired(this.localBool)]]
})
}

}


export CustomValidator {
static validateIfRequired(condition:boolean){
console.log(condition);
....
}

}

当我像这样使用它时,我得到了未定义

CustomValidator.validateIfRequired(this.localBool) 

但是当我像这样使用它时我就明白了

CustomValidator.validateIfRequired(true)

如何传递或计算局部变量? +1 简要解释 Angular 如何评估参数以及为什么我未定义。

最佳答案

您应该使用这样的验证器

import {Control} from "@angular/common";

interface ValidationResult {
[key: string]: boolean;
}

export function emailFormat(control: Control): ValidationResult {
var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;

if (control.value != "" && (control.value.length <= 5 || !EMAIL_REGEXP.test(control.value))) {
return {"incorrectMailFormat": true};
}
return null;
}

export class LoginPage {
public loginForm: ControlGroup;

constructor(private fb: FormBuilder) {
this.loginForm = fb.group({
'email': ['', Validators.compose([Validators.required, emailFormat])],
'password': ['', Validators.compose([Validators.required, Validators.minLength(6)])]
});
}
}

关于javascript - Angular 2 将参数变量传递给验证器函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42213895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com