访问AngularJs中的服务数据

时间:2015-11-14 14:34:57

标签: angularjs coffeescript angular-services

我的代码是coffeescript。 我有一个单独的服务,用于在控制器之间共享会话数据:

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中)时为null。 我试图用console.log(Session)提示数据然后我可以看到数据存在。它具有属性id的用户。但是,如果我尝试提示Session.user已经为null。

有没有办法访问我错过的数据?

非常感谢

1 个答案:

答案 0 :(得分:0)

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

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

在成功回调中,我获得了访问令牌,我将其附加到$ rootScope。

然后在控制器内部,我可以使用:

调用我的$ resource(声明为普通资源)
MyService.get( { token: $rootScope.token } );