Мне нужно иметь две директивы на основе элементов.
Оба имеют свой собственный пользовательский интерфейс, поэтому я использовал ограничение: «E»
Мне нужен способ передачи данных из одной/или нескольких директив в другую
Две директивы, отправляющие данные, находятся в двух разных контроллерах (один в заголовке страницы и один в теле страницы), поэтому пытаются использовать
scope: {
onNotify : "&"
}
просто становится грязным, так как области разные.
Лучшее, что я смог придумать, это шаблон "шины сообщений". Где я ввел третью (на основе атрибутов) директиву, которая предоставляет «api»
api = {
addListener : function(event, fn),
publish : function(event, data)
}
jsfiddle здесь: http://jsfiddle.net/concept/dELCv/
Мои вопросы таковы:
- Действительно ли это единственный способ заставить две директивы на основе элементов взаимодействовать?
- Объем кажется неправильным, так как мне пришлось использовать $(document).data("fc-bus.api", api) для совместного использования экземпляра API между контроллерами. Может кто-нибудь предложить лучший способ совместного использования API между контроллерами
Это работает, и я думаю, это нормально, однако на самом деле это не выглядит очень «угловатым» с API с глобальной областью видимости.
Жду всех ваших ответов и комментариев