Я новичок в angular и сталкиваюсь с catch-22:
Факты:
-
У меня есть служба, которая регистрирует мои файлы (my-logger).
-
Я заменил $ExceptionHandler (из angular) своей собственной реализацией, которая переадресует исключенные исключения из службы my-logger
-
У меня есть еще одна услуга, толкающая служба, которая должна быть уведомлена всякий раз, когда фатальное сообщение должно быть зарегистрировано где-то в моем приложении с помощью "my-logger" .
Проблема:
Я не могу "my-logger" быть в зависимости от "pusher", так как он создаст циклическую зависимость (поскольку "pusher" использует $http. Круг: $ExceptionHandler → my-logger → pusher → $http → $ExceptionHandler...)
Мои попытки:
Чтобы эти 2 службы обменивались данными друг с другом, я хотел использовать $watch на службе-толках: следит за свойством на $rootscope, который будет обновляться в моем логгере. Но, пытаясь потреблять $rootScope в "my-logger" , чтобы обновить свойство, на которое "часы-толкатель" "смотрит", я терпит круговую зависимость, так как получается, что корневой файл $зависит от $ExceptionHandler (круг: $ExceptionHandler → my-logger → $rootScope → $ExceptionHandler).
Пытался найти возможность получить во время выполнения объект области видимости, который работает в его контексте "мой журнал". не может найти такой вариант.
Невозможно использовать широковещательную рассылку, так как требуется, чтобы мой логгер получал доступ к области ($ rootScope), и это невозможно, как показано выше.
Мой вопрос:
Существует ли способ angular для связи двух служб через сторонний объект?
Любая идея, как это можно решить?