Я создал директиву для настраиваемой проверки поля формы UserName, но не могу заставить ее активироваться для нужного элемента формы:
@Directive({
selector: '[appValidateName]',
providers: [{ provide: NG_VALIDATORS, useExisting: ValidateNameDirective, multi: true }]
})
export class ValidateNameDirective implements Validator {
validate(control: FormControl): { [key: string]: any } | null {
return {"results": false};
}
}
и шаблона формы:
<form class="sign-up-form" (ngSubmit)="onSubmit()" #accountForm="ngForm">
<p>
<mat-form-field class="sign-up-field" appearance="outline">
<mat-label>First Name</mat-label>
<input matInput required [(ngModel)]="account.first_name" id="first_name" appValidateName name="first_name" class="form-control" #first_name="ngModel">
<mat-error *ngIf="!first_name.valid">First Name is required</mat-error>{{first_name.valid}}
</mat-form-field>
</p>
</form>
... Валидатор required
работает правильно, но я устанавливаю точку останова в моем пользовательском валидаторе, и он никогда не срабатывает, даже если в этом поле существует атрибут appValidateName
.