2013-06-14 11 views
11

AngularJSの開発者ガイドをナビゲートするとき、戻るボタンを使用してページに戻るときに私が最後のスクロール位置に戻っていないことに気付きました。代わりに、私は一番上に戻って行きます。開発者ガイドはAngularJSで構築されているので、私はAngularJSで自分のWebアプリケーションを構築すると、同じ経験をしていればユーザーに迷惑をかけることになります。なぜこのようなことが起きているのですか? HTML5の履歴APIを何とか使用する必要がありますか?開発者ガイドAngularJS Webアプリケーションの場合:戻るボタンで戻ったときに、最後のスクロール位置がウェブページに記憶されません。どうして?直し方?

行くと、この動作を自分で参照してください。http://docs.angularjs.org/guide/directive

+2

一般に、ほとんどのブラウザはxhrsが「スクロール」を行うのを待たずに、戻るボタンを押すとコンテンツが読み込まれる前にページが「スクロール」されます。私はまだ解決策を調査していない。 – DerekR

答えて

8

あなたはそれを修正したい場合は、私が上のサービスで(マップ内のすべてのルートスクロール位置を追跡するというアイデアを考えたりすることができますrootScope) - ページを出るとき($routeChangeStartリスナー)、スクロール位置をルートパスとともに保存するだけです。任意のページに来て

とするとき、あなたはマップ内のレコードは、ルート・パスのために存在するかどうかを確認し、あなたが角度$ anchorScrollサービスになります$routeChangeSuccessイベント

0

上の任意の位置にウィンドウをスクロールすることができます。

http://docs.angularjs.org/api/ng。$ anchorScroll

それはまさにあなたのシナリオであります! サンプルコードは、ほとんどそれ自体のために話しています。

関連する問題