Maison >interface Web >js tutoriel >Comment puis-je empêcher le scintillement des pages lors des modifications de route AngularJS ?

Comment puis-je empêcher le scintillement des pages lors des modifications de route AngularJS ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-28 17:28:101040parcourir

How Can I Prevent Page Flicker During AngularJS Route Changes?

Retarder le changement d'itinéraire AngularJS pour empêcher le scintillement de la page

Lors de la navigation entre les pages dans une application AngularJS, il est parfois souhaitable de retarder l'affichage de la nouvelle page jusqu'à ce que des modèles spécifiques ou les données ont été chargées. Cela évite le scintillement et garantit une expérience utilisateur plus fluide.

Utilisation de la propriété $routeProvider.resolve

La propriété $routeProvider.resolve vous permet de définir des fonctions qui doivent être résolues avant qu'un changement d'itinéraire puisse se produire. . Ces fonctions peuvent être utilisées pour charger des modèles, récupérer des données ou effectuer toute autre action asynchrone nécessaire pour préparer la nouvelle page.

angular.module('myApp', []).
  config(['$routeProvider', function($routeProvider) {
    $routeProvider.
      when('/myRoute', {
        templateUrl: 'my-route.html',
        controller: 'MyController',
        resolve: MyController.resolve
      })
  }]);

Définir la fonction de résolution

La fonction de résolution est une fonction cela renvoie une promesse. La promesse représente l'action asynchrone qui doit être effectuée avant que le routeur autorise le changement d'itinéraire.

function MyController($scope, myDataService) {
  $scope.myData = myDataService.getData();
}

MyController.resolve = {
  myData: function(myDataService, $q) {
    var deferred = $q.defer();
    myDataService.getData(function(data) {
      deferred.resolve(data);
    });
    return deferred.promise;
  }
};

Dans cet exemple, la fonction de résolution utilise myDataService pour récupérer des données. Une fois les données reçues, la promesse est résolue et le routeur est informé que le changement d'itinéraire peut avoir lieu.

En retardant les changements d'itinéraire jusqu'à ce que les données soient chargées, vous pouvez améliorer l'expérience utilisateur en évitant le scintillement des pages et en vous assurant que toutes les données nécessaires sont disponibles avant l'affichage de la nouvelle page.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn