Moh*_*dey 7 twitter-bootstrap angularjs
我正在使用angularJS开发一个网站,并使用twitter bootstrap进行UI.我有一些Ids
与某个部分关联的哈希,因此当用户点击导航时,页面向下滚动到该部分.它对我来说很好.
这里的网站链接:https: //powerful-cliffs-1105.herokuapp.com/about
现在在关于页面.我有正确的导航,将页面滚动到特定位置.但是当我重新加载该页面时,页面从顶部开始并且不向下滚动到hash
位置,例如https://powerful-cliffs-1105.herokuapp.com/about#management
针对上述问题有两种解决方案:
由于我还在学习angularJS,我无法找到上述问题的任何具体解决方案.
任何帮助是极大的赞赏.
使用该$anchorScroll
服务.
这里的问题是,Angular会以动态方式加载about内容,所以当你有哈希时,你没有准备好内容.$anchorScroll
跟踪哈希并为您滚动它.
// Just borrow from your code
angular.module('aboutController', []).controller('aboutController',['$scope', '$location', '$anchorScroll',
function($scope, $location, $anchorScroll) {
$scope.isActive = function(route){
return route === $location.hash();
}
$anchorScroll();
}]);
Run Code Online (Sandbox Code Playgroud)
由于Mohit(问题的创建者)说我的解决方案对他不起作用,我决定下载代码并在本地工作.我的解决方案在本地工作,这让我感到震惊,但我想在代码中指出一些可能(或者很可能不是)可以解决问题的版本.
<!-- ANGULAR DYNAMIC CONTENT -->
<div class="body" ng-view></div>
<!-- FOOTER -->
<footer ng-include="'views/footer.html'"></footer>
<!-- JS -->
<script src="js/libs/angular/angular.min.js"></script>
<script src="js/libs/angular-bootstrap/ui-bootstrap.min.js"></script>
<script src="js/libs/angular-bootstrap/ui-bootstrap-tpls.min.js"></script>
<script src="js/libs/angular-route/angular-route.min.js"></script>
<!-- ANGULAR CUSTOM CONTROLLERS -->
<script src="js/controllers/home.js"></script>
<script src="js/controllers/about.js"></script>
<script src="js/controllers/contact.js"></script>
<!-- ANGULAR CUSTOM FACTORIES -->
<script src="js/services/contact.js"></script>
<!-- UTILITY FILE -->
<script src="js/utils/util.js"></script>
<!-- ANGULAR CUSTOM ROUTES AND APP -->
<script src="js/route-provider.js"></script>
<script src="js/app.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)
// $locationProvider.html5Mode(true);
Run Code Online (Sandbox Code Playgroud)
并/#/
在访问URL之前附加,如下所示
到目前为止,这是我不建议的,但肯定你可以试一试
$timeout(function() {
$anchorScroll();
}, 0)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2821 次 |
最近记录: |