在AngularJs中访问服务数据

在AngularJs中访问服务数据,angularjs,coffeescript,angular-services,Angularjs,Coffeescript,Angular Services,我的代码是咖啡脚本。 我有一个用于在控制器之间共享会话数据的单例服务: angular.module('cargo').service 'Session', -> this.create = (attributes) -> this.user = attributes return 我正在创建一个登录系统: angular.module('cargo').factory 'AuthService', ($location, $resource, Session) -

我的代码是咖啡脚本。 我有一个用于在控制器之间共享会话数据的单例服务:

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: "example@example.com", password: "12345678"}, ->
      Session.create(session.user)

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

  authService
问题是,当我访问Session.user.id(在authService.isAuthenticated中)时,它是空的。 我试图用console.log(Session)提示数据,然后我可以看到数据就在那里。它有一个属性id为的用户。但如果我尝试提示Session.user,则该用户已为null

有没有办法访问我丢失的数据


非常感谢

我不熟悉coffeescript,但在JS中,我通常使用$http.post进行身份验证,如:

$http.post( my_url, { email: loginEmail, password: loginPassword } );
在成功回调中,我获得了访问令牌,并将其附加到$rootScope

然后在控制器内,我可以使用以下命令调用我的$resource(声明为普通资源):

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