2015-11-14 1 views
0

Мой код - кофейник. У меня есть служба одноплодной для обмена данными между контроллерами Session:Доступ к сервисным данным в AngularJs

angular.module('cargo').service 'Session', -> 
    this.create = (attributes) -> 
    this.user = attributes 
    return 

Я создаю систему входа:

angular.module('cargo').factory 'AuthService', ($location, $resource, Session) -> 
    authService = {} 

    authService.login = (credentials) -> 
    sessionResource = $resource('/api/sessions/:id') 
    session = sessionResource.save user: {email: "[email protected]", password: "12345678"}, -> 
     Session.create(session.user) 

    authService.isAuthenticated =() -> 
    !!Session.user.id 

    authService 

Проблема заключается в том, что, когда я получить доступ к Session.user.id (в authService.isAuthenticated) имеет значение null. Я попытался запросить данные с помощью console.log (Session), а затем я вижу, что данные есть. У пользователя есть идентификатор атрибута. Но если я попробую вызвать Session.user, то уже null.

Есть ли способ доступа к данным, которые мне не хватает?

Большое спасибо

ответ

0

Я не знаком с CoffeeScript, но в JS обычно я использую $ http.post сделать авторизацию как:

$http.post(my_url, { email: loginEmail, password: loginPassword }); 

В обратный вызов я получаю маркер доступа , который я прикрепляю к $ rootScope.

Затем внутри контроллера, я могу назвать свой ресурс ($ объявлен как нормальный ресурс) с:

MyService.get({ token: $rootScope.token });