7

假设我有一个大标题,因此ng-view指令在页面上。就在这个 ng-view 之前,我有一种菜单可以触发角度路由,从而改变视图。我的问题是,只要触发路由,页面就会一直滚动到顶部,因此部分内容不在视口中。

这是我的路由:

angular.module('portfolio', [])
  .config(function ($routeProvider, $anchorScrollProvider) {
    $anchorScrollProvider.disableAutoScrolling();
    $routeProvider
      .when('', {
        templateUrl: 'portfolio/index.html',
        controller: 'PortfolioListCtrl'
      })
      .when('/portfolio/:project', {
        templateUrl: 'portfolio/detail.html',
        controller: 'PortfolioDetailCtrl'
      })
      .otherwise({redirectTo: ''});
  });

我已经$anchorScrollProvider.disableAutoScrolling();把它似乎不起作用。

有人有想法吗?

4

1 回答 1

6

文档对此有点混乱,我记得有同样的问题。显然 ng-view 使用 $anchorScroll 服务,因此您可以通过简单地在模块中覆盖它来禁用它:

angular.module('portfolio').value('$anchorScroll', angular.noop);
于 2013-05-29T19:51:11.820 回答