ホームページ > ウェブフロントエンド > jsチュートリアル > AngularJS ルート変更中のページのちらつきを防ぐにはどうすればよいですか?

AngularJS ルート変更中のページのちらつきを防ぐにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-28 17:28:10
オリジナル
1053 人が閲覧しました

How Can I Prevent Page Flicker During AngularJS Route Changes?

ページのちらつきを防ぐために AngularJS ルートの変更を遅延する

AngularJS アプリケーションでページ間を移動するとき、特定のモデルがインストールされるまで、新しいページの表示を遅らせることが望ましい場合があります。データがロードされました。これによりちらつきが防止され、よりスムーズなユーザー エクスペリエンスが保証されます。

$routeProvider.resolve プロパティの使用

$routeProvider.resolve プロパティを使用すると、ルート変更が発生する前に解決する必要がある関数を定義できます。 。これらの関数は、モデルのロード、データのフェッチ、または新しいページの準備に必要なその他の非同期アクションの実行に使用できます。

angular.module('myApp', []).
  config(['$routeProvider', function($routeProvider) {
    $routeProvider.
      when('/myRoute', {
        templateUrl: 'my-route.html',
        controller: 'MyController',
        resolve: MyController.resolve
      })
  }]);
ログイン後にコピー

解決関数の定義

解決関数は関数です。それは約束を返します。 Promise は、ルーターがルート変更を許可する前に完了する必要がある非同期アクションを表します。

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;
  }
};
ログイン後にコピー

この例では、resolve 関数は myDataService を使用してデータを取得します。データが受信されると、Promise が解決され、ルート変更を続行できることがルーターに通知されます。

データがロードされるまでルート変更を遅らせることで、ページのちらつきを回避し、新しいページが表示される前に、必要なデータがすべて利用可能になります。

以上がAngularJS ルート変更中のページのちらつきを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート