2014-04-25 37 views
1

我在我的應用程序中設置了html5mode(true),我的所有內容都位於一個視圖中。是否有可能有一個完整的網址路由到一個錨定元素在同一頁面上?

想法pre angular是用戶將點擊它會滾動到#about元素。這對jQuery非常有用,因爲你可以很容易地使滾動動畫並使其變得更加流暢。

angularjs但是我掙扎我怎麼能做到這一點使用的路由,且仍保持jQuery的幻燈片的互動,而無需重新加載在我的路線定義的模板/視圖。

理想情況下,我想要有諸如example.com/about,example.com/contact之類的網址,並讓它們在幕後滾動到該元素。

我不知道如何去考慮這個考慮angularjs的最佳方式。

任何幫助?

編輯: 這裏是我試過到目前爲止,它似乎沒有動畫有所合作..

在我NavigationController我有以下..

$scope.scrollTo = $rootScope.$on('$locationChangeStart', function(e, n, c){ 
    e.preventDefault(); 
    $location.hash('about'); 
    $anchorScroll(); 
}); 

然而這隻有在用戶點擊頁面上的按鈕並且根本不考慮該URL時纔有效。

回答

0

這是你的意思嗎? http://plnkr.co/edit/De6bBrkHpojgAbEvHszu?p=preview

(不是我的代碼)

錨被包含在URL中,

<a href="#test?scrollTo=foo">Test/Foo</a> <a href="#weee?scrollTo=bar">Weee/Bar</a>

和模塊的運行功能確實哈希招..

app.run(function($rootScope, $location, $anchorScroll, $routeParams) { 
    $rootScope.$on('$routeChangeSuccess', function(newRoute, oldRoute) { 
    $location.hash($routeParams.scrollTo); 
    $anchorScroll(); 
    }); 
}) 

希望這有助於你..

相關問題