我知道之前已经问过这个问题,我实际上找到了一些我已经实现的解决方案。不幸的是,我无法得到我想要的东西。
我之前没有做过AngularJS,我想做的是:
第二部分已经完成了。我有一个URL更改时调用的函数。我们称之为 myFunction()。
网站的 html 元素有2个属性: ng-controller 和 ng-app 。
ng-controller :myCtrl
ng-app :myApp
我在 head 元素上加载了一个JavaScript文件。我最终想要做的是在该文件中添加一些逻辑来监视URL更改。
我在Firebug中尝试过的最后一件事是:
angular.module('myApp').controller("myCtrl", function($scope, $location, $rootScope, $log) {
$rootScope.$on("$locationChangeStart", function(event, next, current) {
$log.info("location changing to:" + next);
});
});
但是,这不会记录URL更改的任何内容。
答案 0 :(得分:1)
$locationChangeStart
事件仅适用于$rootScope.Scope
(基本上$scope
)。
因此,您应该使用$scope
代替$rootScope
$scope.$on("$locationChangeStart", function(event, next, current) {
$log.info("location changing to:" + next);
});
对于$rootScope
,可用事件为$routeChangeStart
,应在run
方法块中使用。
答案 1 :(得分:0)
您可以使用$routeChangeSuccess
事件。
$scope.$on('$routeChangeSuccess', function () {
myFunction();
}
});
使用$route.current
对象获取有关当前路线的信息。对于它的使用,不要忘记在控制器中注入$route
。