AngularJSで戻るボタンを押した場合に、ページをリロードせずに元のページの元の場所に戻る方法

投稿者: Anonymous

AngularJSでルーティングを行うSPAを作成した場合、戻るボタンを押すと1つ前のページに戻りますが、
ページ自体は再度リロードされます。

そのため、前のページの表示位置に戻らず、またデータのリロードが発生してしいます。

AngularJSで戻るボタンを押した場合に、SPAではない通常のアプリケーションと同様に、
前のページをリロードせずに、元のスクロール位置に戻るにはどのようにすればよろしいでしょうか?

解決

scroll位置についてはscrollイベントで位置を記録しておいて戻ったタイミングで復元する方法があります。以下の回答が参考になります。

https://stackoverflow.com/questions/14107531/retain-scroll-position-on-route-change-in-angularjs#16198496

$http.getが再度実行される件はcacheを有効にすれば解決すると思われます。

$http.get('phones/phones.json', { cache: true })
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *