AngularJS 1.X: Как решить проблему с зацикливанием зависимостей: Error: $injector:cdep Circular Dependency

2016-12-07

По хорошему проблему с зацикливанием зависимостей нужно решать декомпозицией компонентов. То-есть таким образом, чтобы с архитектурной точки зрения у приложения не возникало подобных проблем. Тем не менее, как быстрое решение проблемы, может помочь динамическое подтягивание зависимостей с помощью $injector.

Вам нужно подключить в свой модуль модуль ‘$injector’ и воспользоваться его методом get().

Вместо такого:

myAngularApp.factory('myService', [
'serviceCausingCirclarDeps',
function (serviceCausingCirclarDeps) {
// ....
}
]);

Можно написать так:

myAngularApp.factory('myService', [
'$injector',
function ($injector) {
var serviceCausingCirclarDeps = $injector.get('serviceCausingCirclarDeps');
// ....
}]);



Добавить комментарий