Директива для компонента material-auto-suggest-input из пакета angular_components.
Директива DadataDirective реализует подсказки
- адреса
- отдельно города
- отдельно региона
- реквизитов организации
- реквизитов банка
- фио
Как использовать
Используется для компонента material_auto_suggest_input.
Пример:
<material-auto-suggest-input
dadata="legal_entity"
[gender]="gender"
dadata-delay="500"
dadata-token="ksdfjwoefjweoo"
</material-auto-suggest-input>
dadata="legal_entity" - в кавычках указываем возможные варианты использования подсказок
- address - автоподсказка адресов.
- city - выбор города.
- region - выбор региона.
- surname - автоподсказка фамилий.
- name - автоподсказка имен.
- patronymic - автоподсказка отчеств.
- fio - автоподсказка фамилий имен и отчеств.
- bank - по реквизитам банка.
- legal_entity - по реквизитам организации.
Задача директивы, получив текст, введенный в поле и выполнить обращение к сервису dadata.ru за списком подсказок. Обращение к сервису происходит посредством http запроса к REST API. Некоторые варианты использоваия могут выдавать подсказки, используя геопозиционирование. Тогда в первую очередь выдаются варианты, относящиеся к месту геопозиционирования. Для получения геопозиционирования при первой попытке получить подсказку происходит запрос к dadata.ru с целью определения геопозиции. Директива запоминает полученный КЛАДР города или состояние невозможности получить КЛАДР. Затем КЛАДР используется в каждом обращении к dadata.ru. Или не используется, если не удалось определить.
Запросы подсказок ФИО могут дополняться полом. В таком случае подсказка выдает варианты в соответствии с полом. Каждая подсказка содержит параметр gender пол. MALE, FEMALE или UNKNOWN
UNKNOWN - такой вариант возникает например в бесполых фамилиях. Например Редекоп.
Если в компонент, содержащий material-auto-suggest, добавить публичное свойство gender, то это свойство будет доступно в директиве. Если это свойство не null, то директива будет использовать это свойство при получении списка подсказок.
Это будет работать только в одном случае. При добавлении в шаблон
<material-auto-suggest-input
...
[gender]="gender"
...
</material-auto-suggest-input>
Компонент, содержащий material-auto-suggest-input, может внутри метода
(blur)="method()"
обработать SelectionModel, получить значение gender, и присвоить свойству компонента gender.
!Важно! Должно быть только так [gender]="gender".
<material-auto-suggest-input
...
dadata-delay="500"
...
</material-auto-suggest-input>
Параметр delay задает для директивы задержку выполнения запроса в миллисекунда пока пользователь стучит по клавиатуре. Если параметр не определен, то используется дефолтовое значение 500.
- dadata-token - обязательный параметр. Содержит токен авторизации на сервисе dadata.ru.
Бесплатно разрешено выполнять 1000 запросов в сутки.