2016-06-26 56 views
8

我想這個代碼沒有成功如何使用angularjs 1 http請求使用eventHandlers和uploadEvntHandlers?

$http({ 
    method:"GET", 
    url:"data/mycooljsonfile.json", 
    eventHandlers:{ 
     onprogress:function(event){ 
     console.log("progress"); 
     console.log(event); 
    },onreadystatechange:function(event){ 
     console.log("change"); 
     console.log(event); 
    } 
    }, 
    uploadEventHandlers:{ 
     onprogress:function(object){ 
       console.log(object); 
     } 
    } 
}) 
.success(function(json){ // succès 
    $scope.lemmes=json; 
     //console.log($http); 
}).error(function(error){ // erreur 
    console.log(error); 
}); 

我查了這裏:

https://docs.angularjs.org/api/ng/service/ $ HTTP

有:

https://www.w3.org/TR/XMLHttpRequest/#events

這只是我想通過將大型json文件上的進度條下載到應用程序來改進我的代碼。

順便說一句,我找不到一個方法來記錄整個$ http對象的函數和支持的事件,因爲它返回一個信息很少的承諾對象。

+0

http://stackoverflow.com/a/3694435/949476 – dfsq

+0

我知道它可以做到純JavaScript,我的問題是關於使用Angular JS版本1,它是在標題中。 – Mantisse

+0

現在搔抓幾天。沒有事件被解僱:( – SSR

回答

6

請勿使用onprogress,只能使用progress,與其他事件相同。我製備plunkr證明:

$http({ 
     method: "GET", 
     url: "data.json", 
     eventHandlers: { 
     progress: function(event) { 
      console.log("progress"); 
      console.log(event); 
     }, 
     readystatechange: function(event) { 
      console.log("change"); 
      console.log(event); 
     } 
     }, 
     uploadEventHandlers: { 
     progress: function(object) { 
      console.log(object); 
     } 
     } 
    }) 
    .success(function(json) { // succès 
     $scope.lemmes = json; 
     //console.log($http); 
    }).error(function(error) { // erreur 
     console.log(error); 
    }); 

此外,還有的是,已被固定在角1.5.5,因爲它可以從CHANGELOG可見的錯誤。更新到1.5.5或更高版本,它會工作。

+0

謝謝你的回答,我會在我的空閒時間嘗試這個。乾杯。 – Mantisse

+0

@mantisse接受它與綠色的勾號我會得到一些業力 – ganqqwerty