2013-07-08 12 views
4

最近我發現了AngularJS中未公開的$ locationChangeStart事件,當試圖確定框架中的位置時,如果用戶的會話無效,我應該將用戶重定向到登錄頁面。

我在聽使用下列事件:

$scope.$on("$locationChangeStart", function (event, nextLocation, currentLocation) { 
    // Logic goes here 
}); 

其中nextLocationpreviousLocation是絕對URL到應用程序中的位置。

我的問題是這樣的:AngularJS是否能夠根據路由匹配一個url,就像它的內部路由引擎一樣,以查看絕對URL是否匹配定義的路由?

如果沒有,根據絕對URL檢測路線的最佳方法是什麼?

回答

3

我在AngularJS github項目中找到了相關的源代碼行。 Here是它用來匹配URL到路由的功能:

由於Angular沒有公開這個功能,我決定提出一種將URL匹配到路由的基本方法,因爲我匹配的路由是與實現與Angular相同的路由相比相對簡單。

這是不漂亮,但它的工作原理..

+7

我只是想補充一點,如果你使用$ location.path()事件回調中,你可以得到一個更簡潔的路線,所以這是另一種方式去做吧。 – JayPea

+2

^但$ location.path()似乎是返回「當前」的位置,而不是下一個? –

+0

我很好奇看到你的解決方案。你有沒有修改parseRoute()函數? – jfl