当http请求使用angularjs持续x秒时弹出警报

时间:2016-09-19 10:14:55

标签: javascript angularjs

当http请求没有得到任何反馈时,我想弹出并提示“错误联系服务器”。

.controller('items_ctrl',['$scope','$http',function($scope,$http){
    $scope.shop_id=localStorage.getItem("shop_id");
        $http.get('http://localhost/myapp/spree/stocks.php').success(function(data){
            console.log(JSON.stringify(data));
            $scope.item=data;

           });
    }])

3 个答案:

答案 0 :(得分:1)

您应该使用then代替success/error方法

这是您更新的代码

.controller('items_ctrl',['$scope','$http',function($scope,$http){
    $scope.shop_id=localStorage.getItem("shop_id");
        $http.get('http://localhost/myapp/spree/stocks.php').then(function(data){
               console.log(JSON.stringify(data));
               $scope.item=data;

           }, function(error){
               alert("Error contacting server");
           });
        }])

答案 1 :(得分:0)

您应该指定错误回调函数。

$http.get('/someUrl', config).then(successCallback, errorCallback);

有关详细信息,请参阅 https://docs.angularjs.org/api/ng/service/ $ HTTP

答案 2 :(得分:0)

使用promise for it。在你的javascript中设置一些超时。

var cancelReq= $q.defer();
$http.get('/someUrl', {timeout: cancelReq.promise}).success(successCallback);
$timeout(showErrorPopup, 3000);

超时后,解决它然后显示弹出

function showErrorPopup(){
   cancelReq.resolve(); 
//popup code
}