2013-12-14 11 views
15

Chcę uzyskać wartość cookie i ustawić na dostawcę. Ten post https://stackoverflow.com/a/20415679/772481 wspomniał o $ cookiesProvider. Ale jak z niego korzystać?, jak korzystać z plików cookieProvider w konfiguracji kątowej

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

Spróbuj $ CookieStore, to jest bardzo proste w użyciu. –

+2

Nie sądzę, że $ cookieStore jest dostępne w bloku konfiguracji. – angelokh

Odpowiedz

9

Chciałem ustawić określone nagłówki HTTP na każde żądanie HTTP, więc to jest moje rozwiązanie:

używam funkcji działać, ponieważ w konfiguracji nie może uzyskać dostępu do plików cookie, zobacz http://docs.angularjs.org/guide/module

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

Jeśli nie chcesz korzystać z funkcji uruchamiania dla tej konfiguracji (bo trudno to jednostka-test), można napisać przechwytywania za $ httpProvider, podobny do tego: https://gist.github.com/lpsBetty/76df8d1f037db87f4a0b

+0

'Bloki Run zazwyczaj zawierają kod, który jest trudny do testowania jednostkowego iz tego powodu powinien być zadeklarowany w izolowanych modułach, aby można je było zignorować w testach jednostkowych." -> Z dokumentów AngularJS, tylko dodatkowe informacje. .. –

+0

@JuanHBiscaia masz rację, właściwym sposobem byłoby napisanie przechwytywania, jak tutaj: https://gist.github.com/lpsBetty/76df8d1f037db87f4a0b Zaktualizuję moją odpowiedź –

26

można wstrzykiwać $cookies ręcznie:

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

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

Ponadto można napisać coś takiego:

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

Powoduje to "Uncaught Error: [$ injector: modulerr] Nie udało się utworzyć instancji modułu x z powodu: TypeError: $ cookiesProvider. $ get nie jest funkcją, chociaż logi konsoli, które $ cookiesProvider ma $ dostają się w tym momencie – JustAMartin

Powiązane problemy