2016-06-26 48 views
8

Ho provato questo codice senza successoCome utilizzare eventHandlers e uploadEvntHandlers con le richieste http di angularjs 1?

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

ho controllato qui:

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

e là:

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

E 'solo che vorrei per migliorare il mio codice con una barra di avanzamento su un grande download di file json nell'app.

A proposito, non sono riuscito a trovare un modo per registrare le funzioni globali degli oggetti $ http e gli eventi supportati poiché restituisce un oggetto promessa con poche informazioni.

+0

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

+0

So che è possibile farlo in puro javascript, la mia domanda riguarda l'utilizzo di Angular JS versione 1, è nel titolo. – Mantisse

+0

Grattando intorno a questo per alcuni giorni. Nessun evento sparato :( – SSR

risposta

6

Non utilizzare onprogress, utilizzare solo progress, lo stesso con altri eventi. Preparo una plunkr per dimostrare:

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

Inoltre, c'è stato un problema che è stato risolto in 1.5.5 angolare come si può vedere dalla CHANGELOG. Aggiornamento alla versione 1.5.5 o successiva e funzionerà.

+0

grazie per la risposta, proverò nel mio tempo libero Saluti – Mantisse

+0

@mantisse accettalo con un segno di spunta verde e otterrò un po 'di karma – ganqqwerty