Oto prostsze podejście, że pracował dla moich potrzeb. W zależności od tego, co robisz, musisz powiązać z tym elementem funkcję setDelay()
. Na przykład w moim przypadku przywiązałem setDelay()
do wejścia wyboru.
wyzwalania HTML:
<select class="first-option"
ng-change="setDelay()"
ng-options="o.label for o in download.options"
ng-model="optionModel" required>
</select>
W kontrolerze, dodać prostą funkcję setDelay
która zmieni flagę $scope.delay
:
$scope.setDelay = function(){
$scope.delay = true;
$timeout(function(){
$scope.delay = false;
}, 200);
};
Następnie można po prostu użyć $scope.delay
jako flaga w ng- pokaż:
<div class="loading-div" ng-show="delay">
<img src="loading_spinner.gif">
</div>
Pokaż treść af ter zrobić ładowania:
<div ng-show="!delay">
Content is loaded.
</div>
Teraz za każdym razem, gdy użytkownik wybierze nową wartość w rozwijanym menu, będzie wyzwalać $scope.delay
być ustawiony na true
powodując tarczy, aby pokazać, a gdy osiągnie 200
, to będzie ustaw na false
, powodując, że pokrętło się ukryje.
Czy już zapoznałeś się z dokumentami? [link] (https://docs.angularjs.org/api/ng/directive/ngShow) Przewiń do dołu, a zobaczysz przykład z przejściem i ng-show – graphefruit
Co naprawdę chcesz osiągnąć? Chcesz mieć opóźnienie, aby dla szybkich operacji nie tylko * migało * i wyłączało się, ale przy dłuższych operacjach pojawi się? Tylko wskaźnik ładowania ogólnego przeznaczenia? – Josh