AngularJSでアンカー ハッシュ リンクを適切に処理する方法を知っている人はいますか?
簡単な FAQ ページの次のマークアップがあります。
<a href="#faq-1">Question 1</a>
<a href="#faq-2">Question 2</a>
<a href="#faq-3">Question 3</a>
<h3 id="faq-1">Question 1</h3>
<h3 id="faq-2">Question 2</h3>
<h3 id="fa1-3">Question 3</h3>
上記のリンクのいずれかをクリックすると、AngularJS がインターセプトして、まったく別のページにルーティングします (私の場合、リンクに一致するルートがないため、404 ページです)。
私が最初に考えたのは、「 /faq/:chapter 」に一致するルートを作成し、対応するコントローラーで一致する要素の後にチェック$routeParams.chapter
し、jQuery を使用してその要素までスクロールすることでした。
しかし、その後、AngularJS は再び私を悩ませ、とにかくページの一番上までスクロールします。
では、過去に似たようなことをしたことがあり、それに対する適切な解決策を知っている人はいますか?
編集:html5Modeに切り替えると問題が解決するはずですが、とにかくIE8 +をサポートする必要があるため、受け入れられた解決策ではないのではないかと心配しています:/