Есть две стороны медали.
Первая сторона очевидна: да, вы можете использовать $modal
в службе. $modal
сверху есть один способ, open()
. Спецификации представления, связанные с отображением вашего модального материала, могут быть безопасно отделены от потребителей и сообщаться обратно с использованием обещаний result
или opened
, полученных по обещанию, возвращенному open
, и, конечно же, у вас также есть события в вашем распоряжении, чтобы поддерживать модальность и потребителей свободно в сочетании.
Оборотная сторона этой медали является то, что услуги не являются, как правило, лучшим местом, чтобы инкапсулировать логику для пользовательского интерфейса, поскольку они являются UI агностика и, следовательно, не является частью вида трубопровода, и могут быть упорно негибкими или трудно манипулировать в вашем UI рабочие процессы. Иногда люди неправильно понимают, что услуги - это просто место для консолидации кода многократного использования и ввода их в потребителей. IMHO, они представляют состояние и/или ресурс, который совместно используется компонентами в приложении.
При этом, если ваш конкретный вариант использования достаточно прямолинейный и отделен от любого конкретного рабочего процесса пользовательского интерфейса, вам может быть просто просто управлять модальным сервисом.
Например, перед удалением документа, возможно, возникнет необходимость в активизации диалога подтверждения/предупреждения, и сомневается в том, есть ли какая-либо польза для разделения этого диалога на беспокойство каждого контроллера, который позволяет выполнить Удалить. Проблема заключается в том, начинаете ли вы собирать многочисленные и/или более сложные пользовательские интерфейсы для других событий, связанных с документами, и пытаетесь отделить их от того, как они используются в разных точках приложения.