AngularJS - animacja przeładowania strony w routingu

AngularJS - animacja przeładowania strony w routingu
0

Mam zrobiony routing za pomocą AngularJS, strony przeładowują się bez odświeżania strony, zmienia się jedynie content:

Kopiuj
.....

        $routeProvider
            .when('/password',{
                templateUrl: 'content/password.html',
            })
            .when('/delete',{
                templateUrl: 'content/delete.html',
                controller: 'DeleteCtrl'
            })

.....

W index.html mam div wyświetlający zawartość:

Kopiuj
<div ng-view></div>

Teraz każdą zmianę podstrony chcę animować, np. płynne pojawienie się w krótkim czasie.


Zrobiłem coś takiego, ale w jQuery:

index.html:

Kopiuj
<div id="content" style="display: none;" ng-view></div>

każda podstrona html ma kod:

Kopiuj
<script>$(document).ready(function(){ $("#content").fadeIn(300); });</script>

Teraz trochę bezsensu dodawać w każdej podstronie ten skrypt, bo jak dodam 1 raz w index.html to nie będzie to działać.


Jak zrobić takie coś w AngularJS za pomocą modułu ngAnimate? Nie chcę śmiecić i mieszać z jQuery, skoro używam Angulara.

WS
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 9 lat
  • Postów:12
0
Kopiuj


<div ng-app="app" ng-controller="TestCtrl">
   <div class="box-one" ng-show="showBoxOne" ng-view></div>
</div>


 
Kopiuj
.box-one {
  margin:10px 0 20px 0;
  padding:10px;
  border:1px solid rgba(0,0,0,0.2);
  background:#f00;
  color:#fff;
  border-radius:4px;

  -webkit-transition:all linear 0.5s;
  transition:all linear 0.5s;
}

.box-one.ng-hide {
  opacity:0;

}
 
Kopiuj
 
function TestCtrl($scope) {
  
  $scope.showBoxOne = false;
    setTimeout(function () {
        $scope.$apply(function(){
            $scope.showBoxOne = true;
        });
    }, 1500);


}

angular.module('app', ['ngAnimate'])
.controller('TestCtrl', TestCtrl)

Sprawdzalem, powinno dzialac.

0

Niestety to co napisałeś, po przełączaniu stron zawartość - content pojawia się jednen pod drugim. Nie podmienia się.

WS
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 9 lat
  • Postów:12
0

http://plnkr.co/edit/Xtzu20Gm26LazOfRWz2R?p=preview - kod z oficjalnej dokumentacji, tutaj masz to co chciales z wykorzystaniem ng-animate

0

Mozesz uzyc ui-router i za pomoca jego event-ow zrobic sobie animacje ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.