@Die_Gelassenheit

Что лучше использовать для реализации автоподсказок в AngularJS?

Правильно ли я понимаю, что лучше всего для того, чтобы работать с поведением конкретного элемента в AngularJS, правильнее всего использовать директивы?
Например, я хочу сделать форму с автоподсказками, которые будут формироваться из предустановленных значений + тех, которые уже введет в форму.
Стоит ли использовать для этого связку директивы (чтобы менять html элемента и дорисовывать выпадающий список подсказок) и сервиса (в котором будут храниться актуальные значения инпутов)? Насколько вообще правильно использовать директивы для таких динамических вещей?
  • Вопрос задан
  • 2293 просмотра
Пригласить эксперта
Ответы на вопрос 2
Директива в этом случае сделает код реюзабельным - Вы сможете сделать вторую форму и использовать на ней этот же код. Другими словами - использование директивы полностью оправдано.

А насчет:
сервиса (в котором будут храниться актуальные значения инпутов)

Не знаю, насколько это красиво будет. Можно например сделать изолированный скоуп для директивы и передавать туда массив с
автоподсказками, которые будут формироваться из предустановленных значений + тех, которые уже введет в форму
Ответ написан
@AlexeyIvanov
Developer
Думаю тут лучше всего использовать две директивы:
1. Одну для формы, например HintForm. В ней объявите контроллер директивы, в котором вы будете хранить актуальные значения инпутов.
2. Для самих инпутов, например Hint. При объявлении директивы укажите require: ^HintForm, тогда в функции link вам будет доступен контролер из HintForm. При изменении значения в инпуте вы будете записывать его (значение) в контроллер HintForm. Поскольку контроллер HintForm шарится между всеми Hint-ами, то через него любая директива Hint будет знать актуальные значения инпутов во всей форме.

Это похоже на то, как директива form взаимодействует с вложеными директивами ng-model.

Пример: http://plnkr.co/edit/TQQWJflPSQx5jDh097bM
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы