Как показать ошибку в пользовательском компоненте формы? - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь повторно использовать angular материал автозаполнения, т.е. mat-autocomplete, для этого я создал собственный компонент ce-autocomplete. Это ce-autocomplete использует ControlValueAccessor.

Но ошибка не отображается.

Шаблон родительского компонента

<ce-autocomplete
    formControlName="customer_id"
    [placeholder]="'Customer'"
    [errorTemplate]="errorTemplate">
</ce-autocomplete>

<ng-template
    #errorTemplate
    *ngIf="customer_id.invalid && (customer_id.dirty || customer_id.touched)">
    {{
      errorMessage.getErrorMessage(customer_id, 'customer') ||
        customer_id.errors
    }}
</ng-template>

ce-autocomplete template

<mat-form-field>
  <input
    matInput
    [placeholder]="placeholder"
    [matAutocomplete]="auto_block"
    required
    (blur)="onTouched()"
    (input)="filterOptions($event.target.value)"
  />
  <mat-autocomplete
    autoActiveFirstOption
    #auto_block="matAutocomplete"
    [displayWith]="formHelper.displayFn.bind(this, dataList)"
    (optionSelected)="onValueChange($event.option.value)"
  >
    <mat-option *ngFor="let data of filteredData" [value]="data.id">
      <div>{{ data.name }}</div>
    </mat-option>
  </mat-autocomplete>

    <mat-error>
      <ng-container *ngTemplateOutlet="errorTemplate"></ng-container>
    </mat-error>
</mat-form-field>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...