2012-09-07 6 views
9

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

例として、私は私のhtmlでこのようなものがあります:

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

と私はこの使用た:

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

をしかし、私はちょうど私がこれを実行する必要があることを実現しましたコードを変更してからURLを変更してください。私にリダイレクトされる場所とどこからどこに行くのかを知るには、これと同じ方法をとる方法がありますか?nextcurrent

答えて

24

ルート変更前に発生するイベントは$routeChangeStartです。これは、次のパラメータと現在のパラメータの両方をサポートします。だから、あなたのユースケースをカバーするように書くことができます。あなたはまた、他のイベントを見るために$ルートドキュメント(https://docs.angularjs.org/api/ngRoute/service/$route)をチェックすることをお勧めしますhttp://jsfiddle.net/pkozlowski_opensource/9MnE9/

:ここ

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

は、この動作を説明するための完全なjsFiddleであります$ルートサービスによって発信されます。

+1

ありがとうございます!これは私が探していたものです! – Tomarto

+2

ありがとうございます。 しかし、最初の引数は実際にはイベントです。 – bullgare