9

誰かが URL のルートを変更しているかどうかを知る方法があるかどうか疑問に思っていました。

例として、html に次のようなものがあります。

<a ng-href="#/somewhere">To somewhere</a>

そして私これを使用していました:

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

ただし、URL を変更する前にこのコードを実行する必要があることに気付きました。これを行う方法はありますか?また、同じ方法を使用して、nextどこcurrentにリダイレクトされ、どこからリダイレクトされるのかを知る方法はありますか?

4

1 に答える 1

24

$routeChangeStartルート変更前に発火するイベントがあります。期待どおりに、次のパラメータと現在のパラメータの両方をサポートします。したがって、ユースケースをカバーするために、次のように書くことができます。

$scope.$on('$routeChangeStart', function(scope, next, current){
        console.log('Changing from '+angular.toJson(current)+' to '+angular.toJson(next));
});

これが実際の動作を示す完全なjsFiddleです:http://jsfiddle.net/pkozlowski_opensource/9MnE9/

$ routeのドキュメント(https://docs.angularjs.org/api/ngRoute/service/$route)をチェックして、$routeサービスによって発行される他のイベントを確認することもできます。

于 2012-09-07T17:38:25.437 に答える