2013-09-05 14 views
7

Esiste un modo per emettere la risposta JSON proveniente dal server? Sto cercando di seguito, con l'uscita indesiderati:AngularJS log JSON

$http({ method: 'GET', url: 'getUser' }) 
     .success(function (data,status) { 
      $scope.user = data; 
      console.log("User="+data);}) 
     .error(function (data,status) { 
      $scope.status = status; 
      if(status==403) 
       $location.path("/"); 
     }); 

uscita:

User=[object Object] 

risposta

13

È possibile stringify accuratamente prima di stampare.

console.log("User = " + JSON.stringify(data)); 
4

A seconda del browser, la funzione log può prendere più parametri. Chrome, per esempio, sostiene questo:

console.log("User = ", data); 

Quando si esegue questa operazione, data si presenta in un browser oggetto che è possibile mostrare/comprimere la gerarchia. È estremamente utile. Da quando sviluppo in Chrome, preferisco di gran lunga questo metodo (oltre JSON.stringify) perché è meno digitato e l'esperienza di debug è migliore.

Se si è bloccato il debug in un browser che non supporta questa sintassi, quindi JSON.stringify è probabilmente la soluzione migliore.

+0

Anche se JSON.stringify (val) non gettare alcun errore per qualsiasi tipi di dato, questo è molto più facile della risposta accettata. – tsuz

0

console.dir(object) è quello che stai cercando. Ora è ampiamente supportato in tutti i browser (IE9 +). L'uscita può essere visualizzata here.

7

È inoltre possibile utilizzare angular.toJson() se non si desidera aggiungere una nuova dipendenza:

$log.debug(angular.toJson(data, true)); 

Reference

+0

La migliore risposta di FAR! –

Problemi correlati