2016-07-19 44 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/设置属性,现在似乎可以工作。 –