2013-05-29 41 views
7

假设我有一个较大的标题,以便页面上的ng-view指令处于关闭状态。就在这个ng-view之前,我有一种触发角度路由的菜单,因此改变视图。 我的问题是,无论何时路由被触发,页面都保持滚动到顶部,所以部分不在视口中。Angular:在更改视图时禁用滚动到顶部

这里是我的路由:

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();把它似乎并不工作。

任何人有想法?

回答

6

这篇文章有点混乱,我记得有同样的问题。显然,NG-视图使用$ anchorScroll服务,让您可以通过简单的模块中覆盖它禁用它:

angular.module('portfolio').value('$anchorScroll', angular.noop); 
+1

我不喜欢这样的解决方案。覆盖整个服务是一个糟糕的主意:/ –

+0

任何其他解决方案@ΑναστάσηςΑνδρονίδης? – Lucio

相关问题