angular - Angular:设置自定义错误和编辑字段的方法
问题描述
在表单中,每当出现错误时,清除文本字段并设置错误如下
switch(result){
case "SUCCESS":
// success case
case "ERROR1":
this.Form.controls.text1.setValue('');
this.Form.controls.text2.setValue('');
this.Form.controls.text1.setErrors({ 'error1': true });
break;
case "ERROR2":
this.Form.controls.text1.setValue('');
this.Form.controls.text2.setValue('');
this.Form.controls.text1.setErrors({ 'error2': true });
break;
case "ERROR3":
this.Form.controls.text1.setValue('');
this.Form.controls.text2.setValue('');
this.Form.controls.text1.setErrors({ 'error3': true });
break;
}
为了避免重复行,写了一个方法如下
setError(error : string){
this.Form.controls.text1.setValue('');
this.Form.controls.text2.setValue('');
this.Form.controls.text1.setErrors({ error: true });
}
switch(result){
case "SUCCESS":
// success case
case "ERROR1":
setError('error1');
break;
case "ERROR2":
setError('error2');
break;
case "ERROR3":
setError('error3');
break;
}
字段越来越清晰,但无法设置错误。任何关于如何将特定错误设置为真的建议。
解决方案
根据您的问题,我推断的是,您正在尝试清除字段并将错误设置为您的 formControls。
要为字段设置错误,
this.Form.get('controlName').setErrors({notUnique: true});
要重置表单中的所有字段,
this.Form.reset();
此外,如果您想使用自定义验证器验证您的表单,请参阅以下链接: https ://alligator.io/angular/reactive-forms-custom-validator/
推荐阅读
- node.js - 在 Cloud Functions 中无法进行 Firebase 身份验证
- javascript - ASP.NET JQuery 无法访问服务器和 HTML 控件
- java - Anylogic新分支抛出“无法解析为变量”错误
- ffmpeg - 硬件加速 RPI4 FFmpeg
- python - FileNotFoundError: [Errno 2] 没有这样的文件或目录?
- javascript - 如何在没有明确输入区域的情况下使用快捷方式提交表单?
- angular - 使用事件发射我想将服务数据从组件 A 传递到 B
- python - 类型错误:切片索引必须是整数或无或在零填充 CAGAN 中具有 __index__ 方法
- python - 在 pyinstaller 之后无法导入名称“pywrap_tensorflow”
- javascript - 如何从对象的对象中删除重复项