Ich habe erfolgreich eine ganzseitige Ladeanzeige in Angular nach this Methode eingerichtet. Es benutzt ng-hide/ng-show, die ich mit CSS ein- und ausgeblendet habe. Hier ist mein Code:Momentan Winkellader verwenden, selbst wenn Ansichten zwischengespeichert werden
Die HTML-Bit:
<div ng-show="loading" class="loader">Loading</div>
Die CSS-Bit:
.loader {
transition: 0.25s linear all;
opacity: 0;
visibility: hidden;
}
.ng-hide-add {
opacity: 0;
visibility: hidden;
}
.ng-hide-remove {
opacity: 1;
visibility: visible;
}
Das Eckige Bit:
myApp.controller('appController', function($scope, $route, $rootScope) {
$scope.$on('LOAD',function(){$scope.loading=true});
$scope.$on('UNLOAD',function(){$scope.loading=false});
});
myApp.controller('pageController', function($scope) {
$scope.$emit('LOAD')
angular.element(document).ready(function() {
$scope.$emit('UNLOAD');
});
});
Es sieht beim Laden neuer Seiten gut aus, aber sobald Sie Seiten in der App zwischengespeichert haben und zurück zu diesen Seiten navigieren, verpassen Sie die Überblendungen der Überblendungen, da der Loader nicht benötigt wird.
Wie kann ich sicherstellen, dass der Loader für mindestens 500ms angezeigt wird, wenn die Seite im Cache gespeichert ist und der Loader sonst nicht angezeigt wird?
Gibt es eine bessere Möglichkeit, dieses Problem anzugehen?
Danke.
Danke für die Antwort. Ich habe einen Plunker mit deinem Beispiel erstellt. Es scheint nicht zu gewährleisten, dass der Lader über die ursprüngliche Ansicht hinaus angezeigt wird: https://embed.plnkr.co/HqwjgsAsTdi46xYsPxoo/ - Fehle ich etwas? – longforshort