当找到产品时,搜索产品工作正常,但如果用户使用字母或错误的标准进行搜索,则不会发生任何情况。我可以在 JavaScript 控制台中看到错误消息,并且 header 中有状态代码 204,没有内容。我认为当空对象返回时,Angular 工作得很糟糕。我如何告诉用户没有符合他/她标准的产品,因为我目前根本无法捕获错误消息。处理这个问题的正确和最佳解决方案是什么?捕获错误或解决结果为空并在 HTML 页面中显示错误消息的问题?
服务:
return $resource(
'http://localhost:8080/RMAServer/webresources/com.rako.entity.jdeserials/:id',
{},
{
get: { method: 'GET',isArray:false, params: {id: '@serial'} },
update: { method: 'PUT', params: {id: '@serial'} }
});
Controller
//Searching product with serial number/LOTN
$scope.searchProduct = function () {
$scope.serials = lotnSvc.get({id: $scope.serial}).$promise.then(
function (data) {
var litm = data.litm;
productSvc.get({id: litm}, function (product) {
$scope.product = product;
getBrands();
},function(error){
alert('ERROR when searching product');
console.log("error---->" + error);
});
},function(error){
alert('ERROR when searching product');
console.log("error---->" + error);
});
};
javaScript 控制台中的错误消息
Error: [$resource:badcfg] Error in resource configuration for action `get`. Expected response to contain an object but got an array
http://errors.angularjs.org/1.3.15/$resource/badcfg?p0=get&p1=object&p2=array
at REGEX_STRING_REGEXP
header 中的状态代码
最佳答案
只需尝试将成功和错误处理程序作为第二个和第三个参数发送到“get”函数,而不是使用 Promise。也有同样的问题:How to handle $resource service errors in AngularJS
关于javascript - 使用 $resource 时捕获 AngularJS 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30545852/