以下元素:
<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合作。
答案 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或更高版本。