2016-01-17 54 views
0

我使用$ anchorScroll到一個頁面上的滾動條移動到特定位置後進行點擊了兩次。就我而言,當我從搜索結果頁面點擊一個節目的鏈接時,我想打開包含該節目的播客頁面並向下滾動到特定節目的位置並播放它。播客頁面也可以正常加載,不需要滾動或播放劇集。

的代碼做的定位是:

$anchorScroll.yOffset = 70; 
$location.hash("episode12345"); 
$anchorScroll(); 

我也使用$ routeProvider移動播客頁面,如下所示:

.when("/podcasts/:podcast_name", { 
    templateUrl: "podcast.html", 
    controller: "PodcastController" 
}) 

出現問題的時候,裝載播客後頁面和滾動到所需的情節位置,我想通過點擊瀏覽器後退按鈕返回到搜索結果。 不幸的是,它需要被點擊兩次,因爲第一次後退只會將我帶到我所在頁面的頂部。

例如,這是爲情節位置的頁面網址:

http://localhost:8080/podcasts/Podcast1#16 

這是第一次點擊後頁面的網址:

http://localhost:8080/podcasts/Podcast1#16 

第二點擊我可以回去的地方,我最初來自我的搜索頁面後例如:

http://localhost:8080/results 

當頁面初始加載時,它似乎首先加載沒有位置,然後移動到位置。我想這就是爲什麼我們必須點擊兩次。有沒有辦法在該位置首先加載頁面?

有什麼明顯錯誤我已經走了這個路?我是很新的這一切的東西......答案寫在明信片......

回答

1

解決這個問題的辦法是不使用位置散列,而是直接把散列到$ anchorScroll這樣的:

$anchorScroll("episode12345"); 

這不更新位置,所以當你點擊後退按鈕它不需要去頁面的頂部 - 它只是直接回到以前的位置。

+1

工作很好!謝謝! – BuffMcBigHuge