• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] AngularJS und Loading Indikator angular-busy

alphakanal

New member
AngularJS - angular-busy mit DataService verbinden

Nabend!

Habe bisher den Loadingindikator Angular-Busy2 für $http.get('file.xy') Anfragen benutzt. Hier verknüpft man ein Promise mit einem Directive im HMTL - funktioniert prima!

Code:
// Im Controller $http-request direkt aufgerufen ->
[COLOR="#FF0000"]vm.meinPromise[/COLOR] = $http.get('file.xy');

// Mit angular-busy-Directive im HTML so verknüpft
<div angular-busy="[COLOR="#FF0000"]meinPromise[/COLOR]">
<div id="content> .... </div>
</div>
Hier wird im HMTL der Content-DIV solange mit einem halbtransparenten Indikator überlagert bis fertiggeladen ist. Was wirklich ganz angenehm ist :d

Jetzt habe ich das Laden in einen DataService ausgelagert nach dem Papa Styleguide

Aufruf im DataService:
Code:
function dataservice($http) {
    return {
        getData: getData
    };

    function getData() {
        return $http.get('...')
            .then(getDataComplete)
            .catch(getDataFailed);

        function getDataComplete(response) {
            return response.data.results;
        }

        function getDataFailed(error) {
           ..
        }
    }

Aufruf im Controller:
Code:
activate();

    function activate() {
        return getData().then(function() {
           ...
        });
    }

    function getData() {
        return dataservice.getData()
            .then(function(data) {
                ...
                return data;
            });
    }

Aba nu weiß ich nimmer so recht was ich mit vm.meinPromise verknüpfen soll damit der Indikator wieder seine Arbeit verrichtet.

Gefühlt müsste es mit der function getData() im Contoller zusammenhängen, aber kriegs irgendwie nicht gebacken...oder funktioniert der hier gar nicht mehr?:confused::confused:
 
Zuletzt bearbeitet von einem Moderator:
Hi!
Danke für die Antwort! Eigentlich schon...doch irgendwie will es nicht. Hab auch festestellt dass es zu Problemen in Verbindung mit ngCookies kam -> wobei Cookies jetzt nicht mehr verwende sondern $localStorage .

Loadinglösung ist: Verknüpfe jetzt einfach ein Boolean mit vm.meinPromise und setze den dann in activate() auf true und wenns fertig ist wieder auf false -> selbe Effekt und funktioniert :d
 
Zurück
Oben