Вы можете использовать это вместо того, что вы использовали в демоверсии
<mat-error *ngIf="(contact.touched || callTreeEditForm.submitted) && contact.errors?.required">
Call tree contact is <strong>required</strong>
</mat-error>
Вы использовали это
<mat-error *ngIf="contact.touched && contact.invalid">
Call tree contact is <strong>required</strong>
</mat-error>
Но здесь, когда пользователь коснулся вашего ckeditor, вы получите подтверждение ошибки Поэтому вы должны использовать это условие (contact.touched || callTreeEditForm.submitted)
, чтобы вы могли получить правильную проверку события размытия ввода и события отправки формы. Вместо использования contact.invalid
я предпочел использовать это contact.errors?.required
, потому что неверное даст вам как обязательное, так и неверное значение, поэтому я думаю, что для требуемого вы можете использовать contact.errors?.required
вместо недействительного.