我有问题,我是AngularJS的新手,对于Rest服务,我需要验证用户,但对象是空的。
对User.mail的第一个引用是空的,但在警告框中,我有真正的价值。
请问您有什么想法吗?
.factory('Rest', ['$rootScope', '$resource', 'UserService', function($rootScope, $resource, User){
return $resource($rootScope.services.url + ':serviceId/:itemId/', {}, {
/** One element **/
get: {
method:'GET',
headers:{
Authorization: 'Basic ' + Base64.encode(User.mail + ':' + User.password),
Accept: 'text/xml'
},
params:{serviceId:'', itemId:''},
transformResponse: function(data) {
alert('mail : ' + User.mail);
var response = XmlToJson.init(data);
if(response.length > 0)
return response[0];/*in this case xmlToJson returns an array with one element*/
else
return {};
}
},
答案 0 :(得分:0)
是的,transformResponse
中的$resource
实际上并没有将JSON分解为对象(文档说它应该这样做)。该对象将在transformResponse方法中可用,但在$ resource服务返回时不可用。
您需要使用$http
服务及其transformResponse
来获取您正在寻找的行为。例如:plunker
有关完整说明,请参阅AngularJS transformResponse。