2013-05-29 5 views
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();は動作しているようですしません入れている:

は、ここに私のルーティングです。

誰でも知っていますか?

答えて

6

ドキュメントは少し混乱していますが、同じ問題があることを覚えています。どうやらNG-ビューは$ anchorScrollサービスを使用していますので、あなたは、単にあなたのモジュールでそれを上書きすることによって、それを無効にすることができます

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

私はこのソリューションのようにいけません。サービス全体を無効にすることは悪い考えです。/ –

+0

他の解決方法@Αναστάσάάσάάσαάτάσηςανδρονίδης? – Lucio