lea*_*ner 8 angular angular-reactive-forms angular-forms
我的组件中有以下代码:
if (form.controls['minRange'].hasError('min')) {
form.controls['minRange'].setErrors({ min: true });
}
Run Code Online (Sandbox Code Playgroud)
我在输入中收到消息“minRange 无效”。但我想将错误消息显示为“P”
'Please enter a 5 digit value'
Run Code Online (Sandbox Code Playgroud)
像 .setErrors 如何在 formcontrol 中设置错误消息。任何人都可以帮助我。谢谢。
min*_*eek 15
2021/22+ 答案。不要直接访问表单控件/错误。现在有一些函数可以做到这一点。
在 HTML 中,类似这样的内容与 required 结合在一起。
这是我们的自定义错误键。
loginForm.get('电子邮件')?.getError('无效')
<span
*ngIf="
!loginForm.get('email')?.valid &&
(loginForm.get('email')?.touched || loginForm.get('email')?.dirty)
"
>
{{
loginForm.get('email')?.hasError('required')
? 'Username Required'
: loginForm.get('email')?.getError('invalid')
}}
</span>
Run Code Online (Sandbox Code Playgroud)
当API调用发生错误时在组件中
this.loginForm.get('email')?.setErrors({ invalid: 'Invalid Username' });
Run Code Online (Sandbox Code Playgroud)
'invalid' 是关键,它的值是我们的错误消息。
就是这样!
小智 8
TS:
if (form.controls['minRange'].hasError('min')) {
form.controls['minRange'].setErrors({ incorrect: true, message: 'Please enter a 5 digit value'});
}
Run Code Online (Sandbox Code Playgroud)
html:
<ion-text color="danger">{{form.controls['minRange'].errors.message}}</ion-text>
Run Code Online (Sandbox Code Playgroud)
Angular 中的 Reactive Form 允许您自定义错误和自定义验证。下面是一个例子:
HTML:验证输入是否为数字。
<form [formGroup]="form">
<input formControlName="age" >
<span *ngIf="form.controls.age.errors?.invalidNumber"> // <--- invalidNumber is the key
Age should be a number
</span>
</form>
Run Code Online (Sandbox Code Playgroud)
组件.ts
class TestComponent implements OnInit{
form:FormGroup;
ngOnInit(){
this.createForm();
this.listenToAgeChange();
}
createForm(){
this.form = new FormGroup({
age:new FormControl(null)
})
}
listenToAgeChange(){
this.form.controls.age.valueChanges.subscribe(age=>{
if(isNaN(age)){
this.form.controls.age.setErrors({invalidNumber:true}) // <--- Set invalidNumber to true
}else{
this.form.controls.age.setErrors(null)
}
})
}
}
Run Code Online (Sandbox Code Playgroud)
For*_*stG -2
它是在 HTML 模板中设置的。我怀疑你那里有一个代码可以呈现上述消息。
尝试:
<input ...your input here ...>
<div *ngIf="formcontrol.min">
Please enter a 5 digit value
</div>
Run Code Online (Sandbox Code Playgroud)
如果您需要自定义表单验证,也许您也可以尝试自定义表单验证器。
归档时间: |
|
查看次数: |
21535 次 |
最近记录: |