4

$routeChangeSuccess$location.search() 変数のようなイベントが必要です。私は $location.search('newview') を呼び出しており、いつ変更されたかを知る方法が必要です。

ありがとう!

4

2 に答える 2

15

使用する必要があります$scope.$watch

$scope.$watch(function(){ return $location.search() }, function(){
  // reaction
});

詳細について$watchは、Angular docsを参照してください。

「newview」をクエリ文字列に追加するだけの場合は、上記のコードが機能します。

すなわちからhttp://server/pagehttp://server/page?newvalue

ただし、「newview」の変更を探している場合、上記のコードは機能しません。

すなわちからhttp://server/page?newvalue=ahttp://server/page?newvalue=b

$watch の呼び出しには「objectEquality」パラメーターを使用する必要があります。これにより、$watch はオブジェクト参照の等価性ではなく、値の等価性を使用します。

$scope.$watch(function(){ return $location.search() }, function(){
  // reaction
}, true);

3 番目のパラメーター (true) が追加されていることに注意してください。

于 2013-02-14T05:51:22.703 に答える
2

コントローラーで $routeUpdate イベントをリッスンできます。

$scope.$on('$routeUpdate', function(){
   $scope.sort = $location.search().sort;
   $scope.order = $location.search().order;
   $scope.offset = $location.search().offset;
});
于 2016-11-22T06:13:21.333 に答える