Пользовательский компонент angular material 2 с использованием mat-auto-complete

У меня есть несколько форм, в которых пользователи должны указать свою страну с помощью автозаполнения.

Я реализовал сервис, выполняющий автозаполнение (связываться с сервером, обрабатывать ответы и возвращать предложения)

Теперь я хочу создать компонент для повторного использования во всех формах.

Этот компонент будет зависеть от:

  • услуга, которую я упомянул
  • a matInput field
  • a mat-auto-complete.

Компонент будет реализовывать ControlValueAccessor и MatFormFieldControl

Родительские компоненты будут использовать это так

<mat-form-field>
  <auto-completed-country formControlName="country"></auto-completed-country>
</mat-form-field>

Родительский компонент создает FormControl с именем country и указывает его валидаторы (в некоторых формах требуется указать страну, а в других - нет).

Вопрос

Обычно matInput привязан к FormControl и с автозаполнением через директиву [matAutocomplete].

Однако в моем сценарии этого не было бы, поскольку matInput не привязан к FormControl, что, я думаю, должно быть в порядке, поскольку кажется, что можно иметь matInput, не привязанный ни к одному FormControl.

Однако меня беспокоит директива [matAutocomplete], которую я полагал, читая источник, с которым она взаимодействует с matInput и связанным с ним FormControl.

Как мне к этому подойти?

Я что-то усложняю, чем необходимо?


person Cec    schedule 17.07.2018    source источник


Ответы (1)


Автозаполнение без FormControl будет работать нормально.

person JanakaRao    schedule 16.02.2020