[英]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.