Если директивы напрямую обращаются к scope - мы имеем сильную связанность компонентов и вообще это плохая практика, не зря для в директивах придуман изолированный scope
А тут не модальные окна изменяют поведение элемента, а наоборот речь скорее всего идет о директиве, которая изменяет поведение элемента по клику.
Т.е. например директива вида open-modal="name", которая в себя инжектит сервис модальных окон и вешает на элемент on('click') обработчик, который дергает какой-нибудь метод из сервиса и уже открывает модальное окно.
И это в любом случае удобнее, чем инжектить во все нужные контроллеры сервис модальных окон и писать ng-click="openModal('name')"
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.