Задать вопрос

Работа с NgStorage или аналогом из Angular module .factory или .config

Всем доброго времени суток. Такой вот вопрос:

Есть следующий код, который скажем так делает надстройку на Resctangular через factories.
Суть мне нужно: после каждого запроса через Restangular проверять статус код и выпонять действия с данными в ngStorage
angular.module('app').factory('ApiV1Restangular', ['Restangular', function(Restangular) {

  return Restangular.withConfig(function(RestangularConfigurer) {

    RestangularConfigurer
        .setBaseUrl('/api/v1/')
        .setFullResponse(true)
       .addResponseInterceptor(function(operation, what, url, deferred, response){
            console.log(response.status);

            if(response.status == 401){
                window.location = '#/login'
            }
        });

  });

}]);


Собственно сам вопрос, в куске кода который выполнится в параметре addResponseInterceptor
Мне нужно добавить\изменить\удалить переменную из $localStorage из NgStorage . Но при подключении NgStorage - получаю ошибку
Error: [$injector:unpr] .... и т д
Почитав в гугле понял - что NgStorage нельзя использовать в .factory.

Есть ли варианты, как это можно реализовать?
  • Вопрос задан
  • 3197 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
maxaon
@maxaon
Что Вы почитали и поняли, что $localStorage нельзя использовать в factory?
Ответ написан
daruwanov
@daruwanov Автор вопроса
@maxaon
А что, в таком случае у меня не верно, при такой записи?

angular.module('app').run(['$provide', '$compileProvider', '$locationProvider',
                              '$httpProvider', 'RestangularProvider', 'ngStorage',
    function($provide, $compileProvider, $locationProvider, $httpProvider, RestangularProvider, $localStorage) {
Ответ написан
@JINIK
Вам требуется сначала подключить ngStorage:
var App = angular.module('app', [ 'ngStorage']);


а затем уже, если требуется, инжектить его:
App.run(function($localStorage, $sessionStorage) {});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы