10

私はAngularJSにかなり慣れていません。

ルートが変更されると、ng-view の内容が変更されます。私ができるようにしたいのは、ルートが変更されたときに何らかの動作をフックすることです。

  1. たとえば、終了するビューをアニメーション化し (フェードアウトして左にスライド)、次のビューがすぐに利用できるようになったら、ビューをフェードしてスライドインできるようにしたいと考えています。これは、クラスを追加することで実装できます。ルートの読み込み時にボディに移動し、ルートの変更時にクラスを削除することに成功しました

  2. ビューを現在のビューの右側に積み重ねて、次のビューが最初に現在のビューの右側に読み込まれ、次にビューポートが右にスライドして現在のビューが表示されるようにする機能が必要です。ビューのスライドがほとんどビューから外れ、次のスライドがビューにスライドします (Windows Phone のオフ キャンバス ナビゲーションのように)

$routeProvider はこれを行うのに適切な場所ですか?

私を正しい方向に向けてくれる教祖はいますか?

4

2 に答える 2

12

さらに調査した結果、この目的のために発生するイベントがあります。

$scope.$on('$routeChangeStart', function(scope, next, current){
   //...
});

$scope.$on('$routeChangeSuccess', function(scope, next, current){
   //...
});

問題が何かをアニメーション化することである場合 (ルート変更など)、ngAnimate を使用することをお勧めします。詳細はこちら

于 2013-02-21T18:15:04.250 に答える
3

ルート スコープ レベルでウォッチをインストールして、場所の変更をキャッチできます。

$rootScope.$watch(function {
   return $location.path();
   },  
   function(newValue, oldValue) {  
      if (newValue != oldvalue) {
         // here you can do your tasks
      }
      else {
      }
   },
   true);
于 2013-02-15T11:39:43.737 に答える