「これは ScrollSpy の問題ではなく、Ember Router の問題です」. --@elise-chant
問題は、Ember が URL のハッシュ (「#」) をハッキングし、独自の目的で使用することに依存していることです。このような URL はサポートされていません - http://example.com/#/about#faq
@elise-chant の応答により、問題の核心にたどり着きました。Ember 1.9.0 の時点で、複数のハッシュ ('#') を持つ URL がサポートされていることを報告できることをうれしく思います。
Jay Phelps が修正を提供し、最近では次のように述べています。
[Fix #4098]が安定版の v1.9.0 リリースに含まれていることがわかります。
ただし、実際にページを id="anchor" までスクロールするコードはまだありません。行われた変更は、そのようなコードが発生することを可能にすることでした。私はそのような実装について何人かのコアメンバーと話しましたが、それをコアに追加しようと計画していますが、それまでの間、>=1.9.0 を使用して独自のコードを追加することができます。単純なケースでは簡単です:
このようなものですが、完全にテストされていません:
didTransition: function () {
Ember.run.schedule('afterRender', this,
function () {
if (window.location.hash) {
var el = document.getElementById(window.location.hash.substr(1));
if (el) {
el.scrollIntoView();
}
}
});
}
これに取り組むサイクルを見つけたら、実際の例を示しますが、可能であれば、独自のものを先に進めることをお勧めします。
私は個人的に、人々がこれを試して、あなたがどのようにうまくいくかをここで報告することを切望しています.