2016-07-19 70 views
1

我有一個需要訪問的Angular 1.5應用程序。我添加了一個skipnav即:Angular 1.5跳過導航由路由器覆蓋

<a href="#content">Skip navigation</a> 

然而,這是由覆蓋:

$urlRouterProvider 
    .otherwise(function ($injector, $location) { 
    var state = $injector.get('$state'); 
    state.go('404'); 
    return $location.path(); 
    }); 

我怎樣才能將焦點設置在#內容區域?

+0

在應用程序中,「content」是否爲有效狀態? – KreepN

回答

0

首先 - 該documentation指出的是arameter你想要的URL路徑重定向到或返回URL路徑功能的規則。函數版本傳遞了兩個參數:$ injector和$ location

因此,您將重定向到404狀態並返回位置路徑,該路徑僅返回當前路徑而不帶任何參數或散列。

你需要做的是先設置散列(如果它不是已經在URL提交或URL包含不同的哈希):

​​3210

然後,所有返回的絕對URL段:

return $location.absUrl(); 

有機會的話,你可以只return;不返回任何路徑,因爲剛剛通過設置$location.absUrl()將使角焦點#content元素。不確定,但你可以試着看看它是否適合你。

+1

謝謝!我必須檢查哈希是否爲'內容',然後根據https://www.nczonline.net/blog/2013/01/15/fixing-skip-to-content-links/設置屬性,現在似乎可以工作。 –