Sha*_*oon 16 coffeescript angularjs
我正在使用符合JSONAPI的 API,其中一种格式要求是所有数据(传入和传出)必须包装在data对象中.所以我的请求看起来像:
{
"data": {
"email": "email@example.com",
"password": "pass",
"type": "sessions"
}
}
Run Code Online (Sandbox Code Playgroud)
我的回答如下:
{
"data": {
"user_id": 13,
"expires": 7200,
"token": "gpKkNpSIzxrkYbQiYxc6us0yDeqRPNRb9Lo1YRMocyXnXbcwXlyedjPZi88yft3y"
}
}
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,当发出新的会话请求时,我有:
$scope.signin = ->
session = new Session
email: $scope.user.email
password: $scope.user.password
session.$save()
console.log session
console.log session.token
if not session.token
alert 'Invalid Login'
else
$rootScope.session_token = session.token
$state.go 'app.dashboard'
Run Code Online (Sandbox Code Playgroud)
而我Session的工厂看起来像:
angular.module('webapp').factory 'Session', [
'$resource'
($resource) ->
$resource 'http://localhost:9500/v1/sessions',
id: '@id'
,
save:
method: 'POST'
transformRequest: (data) ->
result =
data: JSON.parse JSON.stringify data
result.data.types = 'sessions'
result = JSON.stringify result
result
transformResponse: (data) ->
result = JSON.parse data
a = JSON.parse JSON.stringify result.data
console.log a
a
Run Code Online (Sandbox Code Playgroud)
请求没问题.格式化和解析似乎工作.但是,当我log把它显示为a 时,响应Resource不是Object.并且session.token即使服务器返回有效数据,也显示为未定义.
如何修改我transformResponse的帐户?
我想你想要的是用一个承诺捕获你的资源响应:
session.$save().$promise.then(function (result) {
console.log (result);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4871 次 |
| 最近记录: |