[Angularjs]錨點操作服務$anchorScroll


寫在前面

有個單頁應用的項目中,需要通過錨點進行頁面的定位。但angularjs的路由會出現跟錨點沖突,angularjs會將錨點當成路由進行解析,造成跳轉到這個頁面,而我們需要的只是跳轉到當前的錨點位置。angularjs的路由格式#/home/en。比如錨點的id為navigate-label,當觸發跳轉到錨點時,會出現#/navigate-label.

解決辦法

angularjs提供了一個$anchorScroll,用來實現錨點的功能。

用法如下:

在controller中引入$anchorScroll.

在該controller中,就可以通過下面的方式實現當前頁面錨點定位。

app.controller('MyController', function ($scope, $anchorScroll, $http, $location, $routeParams, $translate) {
            $location.hash('navigate-label');
            $anchorScroll();
});

如果發現沒效果,可能因為頁面上ng-repeat的東西沒加載完成。可添加指令。具體解決辦法可參考我這篇文章:

http://www.cnblogs.com/wolf-sun/p/5089637.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM