2013-09-30 7 views
7

私は自分のページ内にUIビューを持っています。 いくつかのボタンがクリックされると、ui-viewが読み込まれ、いくつかのHTMLに置き換えられます。 ページをちょうど読み込まれたページの部分にスクロールさせたい。読み込まれたUIビューにスクロールする方法

これは可能ですか? ありがとうございます

+0

私はこれがあなたが探していると思います - http://stackoverflow.com/questions/14712223/how-to-handle-anchor-hash-linking-in-angularjs/14717011#14717011 –

答えて

23

ui-routerモジュールは、デフォルトでui-viewにスクロールするように更新されました。これを防ぐには<div ui-view>autoscroll="false"属性を追加できます。デフォルトの設定はtrueで、状態が変わるとui-viewにスクロールします。

無効にするのではなく有効にするために自動スクロールを設定する必要があるのは別の方法だと思いますが、これは更新されたui-routerの機能です。

あなたはそれについて読むことができますhere。リンクGithubの問題で

、それはデフォルト値がautoscroll="expr"であると言うが、私はexprは何もしないと、デフォルト値は(より理にかなっている)autoscroll="true"であることをことを発見しました。

+0

これをお書きいただきありがとうございます。この新しいアップデートは、すべてのページが突然読み込まれてしまったため、私を狂ってしまいました。その理由を理解できませんでした。ありがとうございました! – ac360

2

ルートを変更すると、ページの上部にスクロールします。

$scope.$on('$routeChangeSuccess', function() { 
     window.scrollTo(0, 0); 
    }); 

このコードをコントローラに入力してください。 (あなたの要件に応じて値を変更してください)

+1

私は '$ stateChangeSuccess'を使う必要がありましたが、うまくいきました。テスト容易性のために '$ window'サービスも使用されました – Chic

関連する問題