我需要查看URL栏上的更改,并根据该更改执行某些操作。我想知道添加 watch 以查看其更改的最佳方法是什么?

最佳答案

存在事件,由于某种原因,它们只是未记录在案。

尝试以下事件:$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的第一个参数中,来监视所需的任何值:
scope.$watch(function() { return $location.path(); }, function(newLoc, oldLoc){
   console.log(newLoc, oldLoc);
});

但是,这将在$ digest上产生更多的开销。

关于angularjs - 在Angular.js中观看$ locationProvider,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14959987/

10-12 19:00