我需要查看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/