Как использовать cookiesProvider в angular config

Я хочу получить значение cookie и установить для провайдера. Этот пост qaru.site/info/201305/... упоминал $cookiesProvider. Но как его использовать?

mod.config(["someProvider", "$cookiesProvider", function(someProvider, $cookiesProvider) {
    someProvider.set('configs', {'token': $cookiesProvider["XSRF-TOKEN"]})
  }]);

Ответ 1

Я хотел установить определенные заголовки http для каждого HTTP-запроса, так что это мое решение:

Я использую функцию run, потому что в config я не мог получить доступ к файлам cookie, см. http://docs.angularjs.org/guide/module

app.run(function run( $http, $cookies ){
  $http.defaults.headers.common["X-AUTH-TOKEN"] = $cookies['AUTH-TOKEN'];
});

Если вы не хотите использовать функцию запуска для этой конфигурации (потому что это трудно выполнить для модульного тестирования), вы можете написать перехватчик для $httpProvider, аналогичный этому: https://gist.github.com/lpsBetty/76df8d1f037db87f4a0b

Ответ 2

Вы можете ввести $cookies вручную:

myApp.config(function() {
  var $cookies;
  angular.injector(['ngCookies']).invoke(['$cookies', function(_$cookies_) {
    $cookies = _$cookies_;
  }]);

  // here you can use $cookies as usual
});

Ответ 3

Также вы можете написать примерно следующее:

$cookiesProvider.$get()["XSRF-TOKEN"]