Angular UI Router state.go和anchor tags

时间:2016-02-24 06:25:56

标签: javascript angularjs angular-ui-router

以下元素:

<p ng-click="$state.go('state.a',{id: 'subsection-b'})">Click me</p>

(单击时)仅导航到我的state.a页面的顶部,而不是向下滚动到

<p id="subsection-b">...</p>

该页面上的

元素。

为什么会这样,我需要修改什么才能让锚标签与state.go一起使用? (顺便说一句,我知道如何用ui-sref解决它,但我需要它与state.go合作。

2 个答案:

答案 0 :(得分:2)

id中的$state.go('state.a',{id: 'subsection-b'})"是状态参数!它不是HTML ID属性。

为此你应该使用州网址:

<a href="[state_url] + #subsection-b"><p>Click me</p></a>

[state-_url]是你在定义中为状态设置的url。

答案 1 :(得分:1)

对于任何需要ui-sref语法的人:

ui-sref="page({name: 'name', '#': 'frag'})"

另外,正如Andrew Tobilko正确指出的那样,$ state.go函数的语法使用哈希(#)not&#39; id&#39;:

$state.go('page', {name: 'name', '#': 'frag'})

注意:这需要ui-router v0.2.14或更高版本。

来源:https://github.com/angular-ui/ui-router/pull/1867