I have simplified my app just to show my problem I am having with custom validator.
You can see the app code on StackBlitz here
[validator] (https://stackblitz.com/edit/angular-ivy-9dizhw?file=src/app/app.component.ts).
My validator cannotContainSpace is definitely called by the framework because I can set a breakpoint on it but the message from html template Password can not contain space. is not displayed as I would expect.
In other words when I enter some word with the space and press Login button I would expect error: Password can not contain space. to be displayed in the page content, but no error is displayed
>Solution :
The problem is from here:
password: [
'',
Validators.required, Validators.minLength(3), this.cannotContainSpace,
],
which you should wrap multiple Validators into an array such:
password: [
'',
[Validators.required, Validators.minLength(3), this.cannotContainSpace],
],
References
Adding custom validators to reactive forms