2016-02-24 104 views
1

以下元素:角UI路由器state.go和錨標記

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

是(點擊時)只瀏覽到我的狀態。a頁面的頂部,而不是向下滾動到

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

該頁面上的元素。

爲什麼會這樣,我需要修改以獲取錨定標記以使用state.go? (順便說一句,我知道如何解決它與ui-sref,但我需要它與state.go工作)

回答

2

id$state.go('state.a',{id: 'subsection-b'})"是一個狀態參數!這不是一個html ID屬性。

的,你應該使用狀態網址:

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

即[國家_url]是你在它的定義狀態設置的URL。

+0

感謝您的狀態參數的解釋,但我還是不明白,應該是爲了得到它的工作是什麼X在$ state.go(「X」)。 – jola

+0

您無法使用'$ state.go()'鏈接到頁面中的特定ID。 – Mahmoud

+2

@Mahmoud,'$ state.go(tab,{'#':anchor})' – Andrew

0

對於任何需要的UI-SREF語法:

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

此外,安德魯Tobilko正確地指出,爲$ state.go函數的語法使用哈希(#)沒有 '身份證':

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

注:這需要UI路由器v0.2.14或更高。

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