为什么未在formarray自定义验证值更改中设置错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么未在formarray自定义验证值更改中设置错误相关的知识,希望对你有一定的参考价值。
我有一个下面的演示应用程序,试图在自定义验证器中设置错误,为什么未设置该错误。
步骤:单击添加用户,然后键入值。关于值更改,我已经致电客户验证程序并设置了错误或返回了错误,但未设置。
演示:demos
import { Component, VERSION } from '@angular/core';
import { FormArray, FormBuilder, FormGroup ,AbstractControl,Validators} from '@angular/forms';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
myForm: FormGroup;
constructor(private fb: FormBuilder) { }
ngOnInit() {
this.myForm = this.fb.group({
email: '',
users: this.fb.array([])
})
}
get userForms() {
return this.myForm.get('users') as FormArray
}
getColors(index) {
return this.userForms.get([index, 'colors']) as FormArray;
}
addUser() {
const userGroup = this.fb.group({
user: [],
colors: this.fb.array([])
})
userGroup.controls['user'].setValidators(this.validateMobileNo);
this.userForms.push(userGroup);
}
deleteUser(i) {
this.userForms.removeAt(i);
}
addColor(index: number) {
const colorGroup = this.fb.group({
color: []
})
this.getColors(index).push(colorGroup);
}
deleteColor(userIndex: number, colorIndex: number) {
this.getColors(userIndex).removeAt(colorIndex)
}
validateMobileNo(controller: AbstractControl): { [key: string]: any } { console.log(controller.value);
console.log("Returning null");
controller.setErrors({error: "ghhggh"});
return {error: "ghhggh"};
}
}
答案
[在运行时添加或删除验证器时,必须调用updateValueAndValidity()才能使新验证生效。
以上是关于为什么未在formarray自定义验证值更改中设置错误的主要内容,如果未能解决你的问题,请参考以下文章
未在具有自定义文本字段的自定义 TableView 中设置第一响应者
[PHP警告:mail():“sendmail_from”未在php.ini中设置或自定义“From:”标头丢失