2013-02-12 15 views
5

Posso accedere correttamente ai cookie sul mio controller in questo modo.Accesso ai cookie in servizio angolare

angular.module('mobbr', [ 'ngCookies' ]).  

function RegisterCtrl($scope, $cookies) { } 

Ma ogni volta che cerco di utilizzare i cookie in un servizio come questo.

angular.module('mobbr.services', []); 
angular.module('mobbr.services').factory('currentUser', [ 'ngCookies', function ($cookies) {}]); 

ottengo il seguente errore: ngCookiesProvider < - ngCookies < - currentUser.

Qualche idea sul perché questo non funzionerà e come dovrei inizializzare un servizio con l'accesso ai cookie?

risposta

9

Questo è ciò che il mio codice per qualcosa di un look simile come:

angular.module('app.MyData', ['ngResource','ngCookies']). 
    factory('MyService', function($resource, $http, $cookies) { 
     ... 
    }) 
+0

La chiave è 'ngCookies' in app.js e poi $ cookie in controller/servizi. Funziona alla grande! –

1

Per me questo ha funzionato:

module.controller('myCtrl', ['$scope', '$cookies', 
     function($scope, $cookies) { 
      ........... 
     } 
    ]); 

Invece di usare ngCookies sto usando $cookies. Ho guardato a questo example ma in qualche modo stava lanciando l'errore

+0

Questo non fornisce una risposta a questa domanda. La domanda riguarda l'accesso ai cookie $ in un servizio, non in un controller. – lin

+0

@lin: il tuo punto è parzialmente valido. Ma penso che se funziona in Controller, funzionerà correttamente. Ho aggiunto la mia risposta sperando che possa aiutare qualche utente che sta affrontando un problema simile al mio. – SharpCoder

+0

No, non è possibile utilizzare tutti gli abstract in un servizio, direttiva, controller, fabbrica, ecc. – lin