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 +をサポートする必要があるため、受け入れられない解決策ではないかと心配しています:/
ng-href=""
代わりに使用することをお勧めします。