【发布时间】:2017-11-13 22:14:54
【问题描述】:
我的请求工厂在这里:
angular.module('myapp').factory('testResponse',
['$http', '$resource', 'AppConfig', '$routeParams', '$rootScope',
function($http, $resource, $routeParams, $rootScope) {
$http.defaults.headers.common['Authorization'] = authorizationHeader;
$http.defaults.headers.post['Content-Type'] = 'application/json';
return $resource('test.json'), {}, {
query: {method: 'GET'}
};
}]);
控制器中的代码在这里:
angular.module('myapp').controller('TestCtrl',
['$http', '$scope', 'testResponse', 'AppConfig', function TestCtrl($http, $scope, testResponse) {
testResponse.query(function(data) {
console.log(data.status);
})
}]);
理想情况下,它应该记录 $http 请求中的状态,但我无法为 $reource 获取它
【问题讨论】:
-
重点是处理成功的资源请求时不需要状态。至于日志记录:拦截器似乎是更合适的工具。但你是对的:状态不可用。
-
如何检查 404、500 或 403 等案例
-
这些都是失败案例。您在故障处理程序中处理它们,并且您可以访问状态。您的示例仅使用成功处理程序。
-
感谢@zeroflagL!我试过This snippet,但我仍然无法处理失败的情况。它导致了另一个错误“未定义”,即 $promise 不是一个函数,当我注入它时,我得到了 Unknown provider $promiseprovider
-
另一个为什么不应该使用
$resource的例子...访问成功时的状态码并不是一个不寻常的场景...这些数据应该默认可用,而不是对你隐藏
标签: angularjs angularjs-resource