2016-12-17 15 views
2

角度アプリの特定のページが読み込まれると、ページの上部に表示されません。角度 - autoscroll = "true"が機能しないときにスクロールする

ng-viewautoscroll="true"を使用しようとしましたが、これは機能しません。私はこれが上にあると信じているng-view私はいくつかの '複雑な'位置を持っているナビゲーションメニューがあります。

代わりに$window.scrollTo(0,0);$routeChangeSuccessと一緒に使用しようとしていますが、全く動作しません。

何が間違っている可能性がありますか?

.run(['$rootScope', '$route', '$window', function($rootScope, $route, $window) { 
    $rootScope.$on('$routeChangeSuccess', function() { 
    $window.scrollTo(0,0); 
     //Some other stuff here relating to meta and title in head 
    }); 
}]) 

追加のコードを追加する - 私はその重要なのはngviewは自分の 'contentSection' の中に座っていることを言及する推測:

<contentSection id="theContentSection"> 
     <ng-view autoscroll="true"></ng-view> 
</contentSection> 

SOLUTION:

この使用して修正:angular.element('#theContentSection')[0].scrollTop = 0;

ありがとうございます。

+0

$ window.scrollTo(0,0)が認識された関数であるかどうか不明ですが、これを試すことができます: $ window.pageYOffset = 0 – gaurav5430

答えて

0

あなたはこれを試してください。..

.run(function($rootScope, $state, $stateParams){ 
    $rootScope.$state = $state; 
    $rootScope.$stateParams = $stateParams; 
    $rootScope.$on('$stateChangeSuccess', function() { 
    document.body.scrollTop = document.documentElement.scrollTop = 0; 
    }); 
}) 

そうでない場合は、単にこの

<ui-view autoscroll="true" /> 

$rootScope.$on('$stateChangeSuccess', function() { 
    document.body.scrollTop = document.documentElement.scrollTop = 0; 
}); 
+0

@ userMod2これをチェックしていますか。 –

+0

試しても動作しません – userMod2

+0

何かエラーがあれば –

0

がviewContentLoadedイベントにしてみてください追加します。ドキュメント

$ viewContentLoadedあたりとして

- ビューがロードされるとDOMが

をレンダリングされた後、あなたはまださらにそれが

 $rootScope.$on('$viewContentLoaded', function(event) { 
     $timeout(function() {window.scrollTo(0,0)},1000); 
    }); 
を動作させるためにいくつかのタイムアウトを与える必要がありますが、解雇
関連する問題