簡體   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