现在,我正在创建此formBuilder:
return this.fb.group(
{
myaccount: [ '', [Validators.required]]
}
);
当我收到关于元素的错误消息时,我正在做的事情:
Object.keys(formToValidate.controls).forEach(key => {
const controlErrors: ValidationErrors = formToValidate.get(key).errors;
if (controlErrors != null) {
Object.keys(controlErrors).forEach(keyError => {
if (keyError === 'required') {
console.log('Key control: ' + key + ', keyError: ' + keyError + ', err value: ', controlErrors[keyError]);
}
});
}
});
显示:按键控制:myaccount,keyError:必需,err值:true
问题是我不想显示“ myaccount”,而是“ My Account”。我尝试以某种方式做到这一点:
return this.fb.group(
{
myaccount: [ 'My Account','', [Validators.required]]
}
);
但这是不可能的。我该怎么办?
编辑:
我要显示标签(特定的一个)而不是表单上的值。我要为console.log自定义一个特定名称吗?
答案 0 :(得分:0)
您基本上是在打印表单控件名称,并且想要显示值而不是FormControl
名称。
在您的示例代码中,myaccount
是FormControl名称,而My Account
是FormControl值。
要显示FormControl值,您需要做的是:
Object.keys(formToValidate.controls).forEach(key => {
const controlErrors: ValidationErrors = formToValidate.get(key).errors;
if (controlErrors != null) {
Object.keys(controlErrors).forEach(keyError => {
if (keyError === 'required') {
console.log('Key control: ' + formToValidate.get(key).value+ ', keyError: ' + keyError + ', err value: ', controlErrors[keyError]);
}
});
}
});
答案 1 :(得分:0)
对我有用。错误在于您正在打印formControl而不是值
Object.keys(formToValidate.controls).forEach(key => {
const controlErrors: ValidationErrors = formToValidate.get(key).errors;
if (controlErrors != null) {
Object.keys(controlErrors).forEach(keyError => {
if (keyError === 'required') {
console.log('Key control: ' + key.value + ', keyError: ' + keyError + ', err value:
', controlErrors[keyError]);
}
});
}
});
答案 2 :(得分:0)
考虑formGroup作为普通的javascript对象,其键是其控件名称,
const thisIsInvalid = { My Account: 'Account Name'}
const thisIsValid = {'My Account': 'Account Name'}
return this.fb.group(
{
'My Account': [ '', [Validators.required]]
}
);
因此,将密钥名称从myAccount更改为“我的帐户”会产生错误,但不会将密钥名称从myAccount更改为“我的帐户”。 希望有帮助。