在Angular中,自定义验证控件无法直接获取表单值,因为验证器函数只能访问当前控件的值,而不是整个表单的值。
但是,你可以通过一些其他的方法来获取表单值。以下是一种解决方法:
import { Component } from '@angular/core';
import { FormGroup, FormControl, Validators } from '@angular/forms';
@Component({
selector: 'app-example',
template: `
`
})
export class ExampleComponent {
exampleForm: FormGroup;
constructor() {
this.exampleForm = new FormGroup({
input: new FormControl('', Validators.required)
});
}
submit() {
const formValue = this.exampleForm.getRawValue();
console.log(formValue);
}
}
在submit()方法中,我们使用getRawValue()方法获取整个表单的原始值,包括所有控件的值。
import { Component } from '@angular/core';
@Component({
selector: 'app-example',
template: `
`
})
export class ExampleComponent {
inputValue: string;
submit() {
console.log(this.inputValue);
}
}
在这个例子中,我们使用了名为"exampleForm"的表单模板变量来引用整个表单。然后,我们可以使用"inputValue"来获取输入框的值。
这两种方法都可以在自定义验证控件中使用,以获取表单的值。