繁体   English   中英

关于角度的位置变化

[英]On location change in Angular

有没有办法检测AngularJS中的全局位置变化,而不仅仅是单个控制器? 我的目标是检测每个位置的变化。 或者有没有有效的方法来观察window.location.href的变化?

$routeChangeSuccess 

据我所知只是单控制器或我错了?

首先, $routeChangeSuccess不限于单个控制器。 它是从$rootScope广播的,这意味着它可以在每个范围(或从$rootScope继承的每个范围)上被监听,但它是一个应用程序范围的事件。

还有一个未记录的事件与$routeChangeSuccess类似,名为$locationChangeSuccess 不同之处在于前者在路由成功更改后触发,后者在URL更改但路由更改之前触发。 请注意,这不是所有URL更改,只是URL以AngularJS应用程序可以注册它的方式更改(例如,对$location.url()的setter调用)。

为了澄清, $locationChangeSuccess也是从$rootScope广播的。

对于两者,您可以使用scope.$on('$routeChangeSuccess')scope.$on('$locationChangeSuccess')来监听事件。

对于使用Angular-UI-Router的用户,此事件不会触发。 “$ stateChangeSuccess”是Angular-UI-Router的正确事件。 有关UI路由器事件的更多信息,请参阅此SO问题:
如何触发UI-Router View Load事件?
以及API指南:
https://github.com/angular-ui/ui-router/wiki#state-change-events

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM