Регистрация событий в директиве, встроенной в $uibModal
У меня есть модал (с помощью Angular-Bootstrap's $uibModal
) и этот модал содержит директиву <my-directive>
,
Эта директива предназначена для многократного использования в нескольких контейнерах и, следовательно, она взаимодействует с директивой-контейнером только через события (также используя события, потому что используя $watch
было бы неэффективно).
Директива принимает событие "addNew"
и регистрирует это событие в функции ссылки директивы, используя scope.$on()
$uibModal
Диспетчер отправляет "addNew
msgstr "событие в контроллере сразу после запуска модала.
Основываясь на моих сообщениях журнала отладки, я вижу некоторые случаи, когда модальное окно открывается, оно отправляет событие, но событие не фиксируется директивой. Я подозревал, что это условие гонки, возможно, директива не регистрирует слушателя до отправки события, поэтому я попытался использовать $interval(f(){}, 0, 1)
но это также не помогло.
Я мог бы использоватьon-ready
"функция, которую директива вызывает для хоста / контейнера через область видимости, т.е. scope.onReady()
После того, как директива зарегистрировала своего слушателя. Но это кажется запутанным / излишним.
Есть ли другой способ исправить это?