URLバーの変更を監視し、それに基づいて特定のアクションを実行する必要があります。時計を追加して変更を表示するのに最適な方法は何でしょうか。
3320 次
2 に答える
12
イベントは存在しますが、何らかの理由で文書化されていません。
次のイベントを試してください:$locationChangeStart
および$locationChangeSuccess
scope.$on('$locationChangeStart', function (event, newLoc, oldLoc){
console.log('changing to: ' + newLoc);
});
scope.$on('$locationChangeSuccess', function (event, newLoc, oldLoc){
console.log('changed to: ' + newLoc);
});
または、Andersが提案したように、関数を$ watchの最初の引数に渡すことで、任意の値を$watchできます。
scope.$watch(function() { return $location.path(); }, function(newLoc, oldLoc){
console.log(newLoc, oldLoc);
});
ただし、これにより$digestのオーバーヘッドが少し増えます。
于 2013-02-19T15:45:29.517 に答える
1
コントローラで$locationオブジェクトを要求したとすると、次のように実行できます。
$scope.$watch(function() { return $location.path() }, function() {
// Do stuff when the location changes
});
于 2013-02-19T14:38:33.287 に答える