2014-05-23 41 views
1

我有一個角度的應用程序與一些鏈接。點擊每個鏈接會顯示一組特定的數據。我希望每個鏈接都可以在URL中設置一個哈希值,例如http://foo.com/bar#item1,並且我還希望在具有該哈希值的URL直接訪問時顯示特定數據集。如何防止Angular將URL哈希變成路徑

我希望通過閱讀/操作$ location.hash()來完成它,但只要我將$ location注入到控制器中,URL中的#item1就變爲#/ item1。有沒有辦法阻止Angular做到這一點,以及設置我所描述的最佳方式是什麼?

+1

這只是猜測,但也許它可以幫助配置與'html5mode的locationProvider:TRUE':見https://docs.angularjs.org/guide/$location - html5mode – Sprottenwels

回答

0

您可以在路徑/bar/item1中傳遞參數,使用$routeParams來捕獲它,如果存在則使$location.hash()

"controller" 

var anchor = $routeParams.anchorBottom; 
if(anchor){ 
    $location.hash(anchor); 
    $anchorScroll(); 
} 


"link to section" 

$location.path('/heart/bottom'); 


"route" 

.when('/heart/:anchorBottom',{ 

You could see this running here.

相關問題