Регистрация событий в директиве, встроенной в $uibModal

У меня есть модал (с помощью Angular-Bootstrap's $uibModal) и этот модал содержит директиву <my-directive>,

Эта директива предназначена для многократного использования в нескольких контейнерах и, следовательно, она взаимодействует с директивой-контейнером только через события (также используя события, потому что используя $watch было бы неэффективно).

Директива принимает событие "addNew" и регистрирует это событие в функции ссылки директивы, используя scope.$on()

$uibModalДиспетчер отправляет "addNewmsgstr "событие в контроллере сразу после запуска модала.

Основываясь на моих сообщениях журнала отладки, я вижу некоторые случаи, когда модальное окно открывается, оно отправляет событие, но событие не фиксируется директивой. Я подозревал, что это условие гонки, возможно, директива не регистрирует слушателя до отправки события, поэтому я попытался использовать $interval(f(){}, 0, 1) но это также не помогло.

Я мог бы использоватьon-ready"функция, которую директива вызывает для хоста / контейнера через область видимости, т.е. scope.onReady()После того, как директива зарегистрировала своего слушателя. Но это кажется запутанным / излишним.

Есть ли другой способ исправить это?

0 ответов

Другие вопросы по тегам