Модуль COMBOLOOKUP використовується для створення DropDown ComboBox активних елментів з підтримкою Autocompletion,
які біндяться напряму до фідів KVS. Набираючи в пошуковому полі вводу
текстову послідовність, кожен натиск клавіші генерує запит на сервер,
який занурюється разом з пошуковою лямбдою в KVS стрім. Знайдені
записи автоматично доставляються на клієнт та відображаюится в DropDown області.
SPEC
Ця функціональність реалізується за допомогою простого протоколу comboKeyup та comboSelect
зі сторони клієнта. Зі сторони сервера використовується API Element:proto/1.
Ця функція повинна містити код який вміє рендерити рекорди в серверному фіді та відправляти
їх на клієнт за допомогою NITRO API nitro:insert_top. Модуль, який містить цю функцію,
можна вказувати на рівні протоколу контрольного елементу.
Приклад використання
Покажемо на прикладі як використовувати контрольний елемент comboLookup бібліотеки NITRO разом
з більш високорівневою бібліотекою FORM, яка призначеня для більш зручної маніпуляції формами
як сукупністю полей зі своїми правилами валідації.
Для початку ми повинні використати цей контрольний елемент:
Модуль делегата повинен містити функцію proto/1, яка забезачує звертання до бази даних,
рендер знайдених елементів, та відсилка їх на клієнт по WebSocket. Крім цього цей модуль
містить в нашому прикладі одразу функцію рендеру знайденого елементу на стороні
сервера в NITRO елмент. У нашому прикладі це один img та два p теги (Ім'я та Номер).
У випадку, коли адреси пошукових фідів змінюються протягом життєвого циклу контрольного елементу,
необхідно оновлювати повний рендер контрольного елементу: