Поэтому у меня есть две фабрик в угловом, одна из которых является пользователь, связанным с (пользователь авторизован? Поговорить с фоновым и войти с ней в)Фикса циклическая зависимость в Угловых
app.factory('userFactory', function($window, $location, $http) {
var loggedUser = {};
loggedUser.isLogged = false;
loggedUser.check = function() {
if($window.sessionStorage.user) {
this.isLogged = true;
} else {
this.isLogged = false;
}
}
loggedUser.doLogin = function (theData) {
var promise = $http({method: 'POST', url: 'http://whatevah/login', data: theData});
return promise;
}
return loggedUser;
});
и тот, который связан с перехватчиком (отправьте токен и возьмите ответ, чтобы узнать, вошел ли пользователь в систему).
app.factory('tokenFactory', function($q, $window, $http) {
return {
request: function(config) {
config.headers = config.headers || {};
if ($window.sessionStorage.token) {
$http.defaults.headers.common['mytoken'] = $window.sessionStorage.token;
}
return config || $q.when(config);
},
response: function(response) {
return response || $q.when(response);
}
};
});
Они оба $http
впрыскивается, что вызывает эту ошибку
Circular dependency found: $http <- tokenFactory<- $http <- userFactory
Его странно мне, что два различных заводов в угловой не могут иметь такую же инъекцию, так как заводы имеют разные названия и делать разные вещи
Как это исправить?
Благодаря
вы можете привести пример в codepen или jsbin? это не должно быть проблемой круговых зависимостей – eltonkamami
Не уверен, что это ваша проблема, но кажется правдоподобной: если перехватчик зависит от '$ http', это круговая зависимость: http://stackoverflow.com/questions/20647483/angularjs- инъекция-сервис-в-HTTP-перехватчик-круговая зависимость? rq = 1 – mzulch
@antoniskamamis Antonis, я обновил свой оригинальный пост. Теперь есть больше кода, если вы хотите взглянуть. Я не использую какой-либо метод или данные 'loggedUser' в' tokenFactory', так что это действительно странно для меня. Ευχαριστω – slevin