我的代码是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。
有没有办法访问我错过的数据?
非常感谢
答案 0 :(得分:0)
我不熟悉coffeescript,但在JS中我通常使用$ http.post来执行身份验证:
$http.post( my_url, { email: loginEmail, password: loginPassword } );
在成功回调中,我获得了访问令牌,我将其附加到$ rootScope。
然后在控制器内部,我可以使用:
调用我的$ resource(声明为普通资源)MyService.get( { token: $rootScope.token } );