Карина, вы не можете проверить любой компонент.Вы можете проверить специальный компонент: пользовательский элемент управления формы.В пользовательском элементе управления формы вы можете создать валидатор, внутри или снаружи пользовательского элемента управления формы.Но это должно реализовывать ControlValueAccessor.
Конечно, вы можете иметь компонент и, например, изменить входной вызов функции, но на самом деле это не проверка
Если ваша пользовательская форма Control имеетвалидатор внутри элемента управления, который пользовательский элемент управления формы должен добавить в качестве поставщика NG_VALIDATORS, и будет выглядеть как
@Component({
selector: 'app-custom-form-control',
template: `...
`,
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => CustomFormControl),
multi: true
},
{
provide: NG_VALIDATORS,
useExisting: forwardRef(() => CustomFormControl),
multi: true,
}
]
})
export class CustomFormControl implements ControlValueAccessor {
onChange;
onTouched;
constructor(el:ElementRef){}
writeValue(value: any[]|any): void {
...receive a value, make something to show it...
}
registerOnChange(fn: any): void {
this.onChange = fn;
}
registerOnTouched(fn: any): void {
this.onTouched = fn;
}
setDisabledState(isDisabled: boolean): void {
}
//A function that, when some happens, send a change
setValue(value: any) {
this.onChange(...)
}
focusOut()
{
this.onTouched()
}
validate(control: AbstractControl): ValidationErrors | null{
..your logic here..
return null
}
}