kMotion
@kMotion

Angularjs общение между директивами, вызов метода?

Всем привет, подскажите пожалуйста, есть две директивы, у каждой есть контроллер, в котором есть свои методы. Директивы не вложенные друг в друга. Просто идущие друг за другом. Каким методом можно из контроллера одной директивы вызвать метод другой директивы? Передать метод, который нужно вызвать ч-з скоуп? Каким методом это сделать? Быть может где статья есть почитать? Укажите направление куда рыть. Спасибо за ответы.
  • Вопрос задан
  • 231 просмотр
Решения вопроса 1
mazhekin
@mazhekin
Frontend, Backend Web Developer
три разных способа
1) послать событие $broadcast, в директиве поймать его $on и вызвать нужную функцию
2) внедрить в директиву объект с указателем на функцию через атрибут (bindings, '<', '='), var commander = { func: finction() {} }, внутри директивы переопределить функцию commander.func = function () { тут мой код... }, и вызывать ее извне или в другой директиве commander.func();
3) а лучше поместить код метода директивы, отдельно в сервис, и в другой директиве вызвать метод сервиса, если позволяет ситуация и всегда так проектировать приложение.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kMotion
@kMotion Автор вопроса
спасибо, использовал метод 1. Все работает. А других методов нет? Может передать один делегат в другой или это уже извращения?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы