使用$ resource时在AngularJS中捕获错误

时间:2015-05-30 11:54:14

标签: javascript angularjs error-handling ngresource

搜索产品在找到产品时工作正常,但如果用户搜索字母或错误标准,则不会发生任何事情。我可以在JavaScript-console和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'} }
                    });

控制器

    //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 

标题中的状态代码

Status code in header after GET

1 个答案:

答案 0 :(得分:1)

尝试将成功和错误处理程序作为第二个和第三个参数发送到“get”函数而不是使用promises。出现了同样的问题:How to handle $resource service errors in AngularJS