2016-06-26 11 views
8

habe ich versucht, diesen Code ohne ErfolgWie verwendet man eventHandlers und uploadEvntHandlers mit angularjs 1 http Anfragen?

$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); 
}); 

ich hier geprüft:

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

und dort:

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

Es ist nur, dass Ich mag würde um meinen Code mit einem Fortschrittsbalken auf einem großen JSON-Datei-Download in die App zu verbessern.

Übrigens, ich konnte keinen Weg finden, um die gesamten $ http-Objekt-Funktionen und unterstützte Ereignisse zu protokollieren, da es ein Versprechen-Objekt mit wenigen Informationen zurückgibt.

+0

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

+0

Ich weiß, es ist möglich, es in reinem Javascript zu tun, meine Frage ist über die Verwendung von Angular JS Version 1, es ist im Titel. – Mantisse

+0

Seit einigen Tagen rumzukratzen. Keine Ereignisse gefeuert :( – SSR

Antwort

6

Verwenden Sie nicht onprogress, verwenden Sie einfach progress, das gleiche mit anderen Ereignissen. Ich bereite ein plunkr zu demonstrieren:

$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); 
    }); 

Auch gibt einen Fehler war, die in Winkel 1.5.5 behoben wurde, wie es von den CHANGELOG zu sehen ist. Update auf 1.5.5 oder höher und es wird funktionieren.

+0

danke für die Antwort, ich werde dies in meiner Freizeit versuchen .. Prost. – Mantisse

+0

@Mantisse akzeptieren es mit einem grünen Häkchen und ich werde Karma bekommen – ganqqwerty