По хорошему проблему с зацикливанием зависимостей нужно решать декомпозицией компонентов. То-есть таким образом, чтобы с архитектурной точки зрения у приложения не возникало подобных проблем. Тем не менее, как быстрое решение проблемы, может помочь динамическое подтягивание зависимостей с помощью $injector.
Вам нужно подключить в свой модуль модуль ‘$injector’ и воспользоваться его методом get().
Вместо такого:
myAngularApp.factory('myService', [
'serviceCausingCirclarDeps',
function (serviceCausingCirclarDeps) {
// ....
}
]);
Можно написать так:
myAngularApp.factory('myService', [
'$injector',
function ($injector) {
var serviceCausingCirclarDeps = $injector.get('serviceCausingCirclarDeps');
// ....
}]);