[英]Data field is missing from HTTP response object. How can I access it?
我想通过使用访问订单数据
$scope.hero.order = response.data;
但是它给出了一个不确定的错误,当我检查响应对象时,没有通常出现的data
字段,有人可以突出显示我的错误吗?
OrderService.js
angular.module('Orders')
.service('OrderService', ['$http', '$state', '$resource', '$q', 'SettingService', '$localStorage', "MessageService",
function($http, $state, $resource, $q, SettingService, $localStorage, MessageService) {
var orderResource = $resource(SettingService.baseUrl + "api/orders/:id", {id:'@id'}, {'query':{method:'GET', isArray:false}, 'update':{method:'PATCH'}});
var service = {
getOrder : function(OrderId, successCallback, failureCallback){
orderResource.query({id:OrderId}, successCallback, failureCallback);
}
}
return service;
}]);
您会收到“不确定的错误”,因为orderResource.query()
的成功回调的第一个参数是响应正文(您的情况下为order对象),而不是响应对象。 因此,您的成功回调函数应如下所示:
function(order, getResponseHeaders, status, statusText) {
$scope.hero.order = order;
...
}
您可以参考$resource
的文档 :
成功回调使用(value(Object | Array),responseHeaders(Function),status(number),statusText(string))参数调用
现在要做的(尝试从response.data
获取订单对象)是$http
( doc )的行为- $http
的成功回调将接收一个response
对象,其data
字段引用http响应正文。 但是,对于$resource
来说是不同的-正文,标头,状态等均按顺序作为参数传递。
看来AngularJS应该使行为一致,但不幸的是,事实并非如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.