2014-12-29 14 views
6

Quali moduli/suggerimenti possono essere utilizzati per gestire il caricamento in AngularJS? In sostanza, come si include un'icona di caricamento quando viene caricata una pagina (ad esempio, le impostazioni dell'account dell'utente O quando la pagina viene caricata inizialmente)? Esiste una procedura standard o un modulo ng?Come gestire il caricamento in AngularJS?

Ps. Se la mia domanda è troppo vaga o inappropriata, correggimi. Penso che abbia attraversato le menti di molti principianti angolari.

+1

Ci sono molti moduli per questo. Le risposte già menzionate sono: barra di caricamento angolare, spinner angolare, spinner angolare-wham. Inoltre c'è ngProgress e ngProgressLite. – Martin

risposta

6

Questo è di gran lunga il metodo più semplice per indicare una o più richieste XHR in corso, se si utilizza un aroma di instradamento u-ro, è anche possibile visualizzare i file HTML che vengono recuperati nelle richieste XHR.

http://chieffancypants.github.io/angular-loading-bar/

E 'un bar che sembra la stessa come l'indicatore di caricamento Youtube, ed è facilmente stile-grado.

Basta includere la libreria come modulo ng, il gioco è fatto.

angular.module('myApp', ['angular-loading-bar']) 

Si potrebbe voler disabilitare il cerchio o la barra stessa (entrambi allo stesso tempo potrebbero sembrare un po 'troppo).

+0

Felice anno nuovo fcking Sono così ubriaco – AMG

5

ho trovato questa risposta per essere molto utile, per gentile concessione di Josh David Miller:

.controller('MainCtrl', function ($scope, myService) { 
    $scope.loading = true; 
    myService.get().then(function (response) { 
    $scope.items = response.data; 
    }, function (response) { 
    // TODO: handle the error somehow 
    }).finally(function() { 
    // called no matter success or failure 
    $scope.loading = false; 
    }); 
}); 

<div class="spinner" ng-show="loading"></div> 
<div ng-repeat="item in items>{{item.name}}</div> 

Fonte: https://stackoverflow.com/a/15033322/4040107

+0

Ottimo concetto. Il myService.get(). Then (...) include sempre una richiesta get $ http o può essere qualcos'altro? Per esempio, se ho una funzione di servizio personalizzata .getSomethingElse() posso seguirla, quindi anche con .then (...) - Ricapitolo di aver avuto delle difficoltà con esso in passato. – AMG

+0

Provare a chiamare .getSomethingElse() in una variabile, quindi utilizzare then() con la variabile. Quanto segue può essere utile nei documenti Angular: https://docs.angularjs.org/api/ng/service/$q –

3

aveva risposto alla domanda simile in precedenza, nonché ... Se non si desidera implementarlo da soli, di seguito sono riportati alcuni collegamenti.

angular-spinner o angular-sham-spinner

leggere anche questo BLOG che dettaglia come il filatore lavora con angularjs

se si desidera implementare da soli ... poi

app.directive("spinner", function(){ 
return: { 
restrict: 'E', 
scope: {enable:"="}, 
template: <div class="spinner" ng-show="enable"><img src="content/spinner.gif"></div> 
} 
}); 

i havent provato il codice ma la direttiva non sarà più complessa di questa ...

Problemi correlati