Domanda

Sto cercando di ottenere un div di caricamento da mostrare quando il mio modulo angolare sta contattando il server.Sto usando AngularJS 1.0.1 e Risorse AngularJS 1.0.1 per espandere la funzionalità dell'HTML e JQuery 1.7.2 per alcune manipolazioni DOM aggiuntive e supporto Ajax.

Ho già scoperto che il div di caricamento non mostrerà se eseguo la chiamata Ajax in Async False, ad eccezione di Firefox dove mostra ma GIF animato non è animato.

Se eseguo la chiamata Ajax in Async True, i dati restituiti indietro non vengono caricati nelle variabili del modello angolare del modello caricato parziale.

È tutto il possibile per ottenere un div caricamento animato da mostrare e ottenere i dati angolari per caricare il modello?

È stato utile?

Soluzione

Speriamo che ti capisca correttamente.Vuoi mostrare un progresso di caricamento per le tue richieste Ajax.Per fare ciò hai bisogno di un intercettore di risposta.Ecco un esempio di come fare questo http://jsfiddle.net/zdam/dbr2r/

// register the interceptor as a service, intercepts ALL angular ajax http calls
.factory('myHttpInterceptor', function ($q, $window, $rootScope) {
    return function (promise) {
        $rootScope.nowloading = true; // use ng-show="nowloading" on element containing spinner
        return promise.then(function (response) {
            // do something on success
            $rootScope.nowloading = false; // need to turn it off on success 
            return response;

        }, function (response) {
            // do something on error
            $rootScope.nowloading = false;  // need to turn it off on failure
            $rootScope.network_error = true;   // you might want to show an error icon.
            return $q.reject(response);
        });
    };
.

Spero che questo aiuti

- Dan

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top