关于角度的位置变化

Dee*_*psy 10 javascript location href angularjs

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

$routeChangeSuccess 
Run Code Online (Sandbox Code Playgroud)

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

Sam*_*itz 24

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

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

只是为了澄清,$locationChangeSuccess也是从那里播出的$rootScope.

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