«Это не проблема с ScrollSpy, это проблема с Ember Router». - @ elise-chant
Проблема заключается в том, что в ее ядре Ember полагается на взломать хэш ('#') в URL-адресе и использовать его для своих целей. Там не было поддержки для таких URL-адресов: http://example.com/#/about#faq
@ ответ elise-chant приводит меня к core issue, и теперь я рад сообщить, что с Ember 1.9.0 URL с более чем одним хэшем (' # ').
Jay Phelps при условии исправления и совсем недавно было это, чтобы сказать:
Мы можем видеть, что он [Fix #4098] приземлился в стабильной версии v1.9.0.
У вас пока нет кода, который фактически прокручивает страницу до id = "anchor" для вас. Сделанные изменения позволили сделать этот код . Я поговорил с некоторыми из основных членов о такой реализации и по-прежнему планирую попробовать и добавить ее в ядро, но в тем временем вы можете определенно использовать> = 1.9.0 и добавить свой собственный код в , чтобы сделать это, что должен быть довольно прямо вперед для простых случаев:
Somethine как это, но совершенно непроверенный:
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();
}
}
});
}
Как я нахожу циклы для работы на этом я буду иметь рабочий пример, но я предлагаю вы пахаете вперед своими силами, если сможете.
Я лично заинтересован в том, чтобы люди попросили и расскажут здесь, как вы идете.
что [тип url] (http://emberjs.com/guides/routing/specifying-the-location-api/) вы используете? По умолчанию Ember использует hash ('#'), который определенно столкнется с якорями, используемыми scrollspy, как вы уже видели в сообщении об ошибке. – MilkyWayJoe
Я не использую историю api.Мне нужно было бы исследовать, какие браузеры поддерживают его, а какие нет (позже может быть проще. Как вы думаете, было бы лучше возобновить роутер и установить местоположение в none при вводе представления и включить его снова, когда представление удаляется? – Rudi
Возможно, я ошибался, но насколько я знаю, вы не можете изменить их тип url во время выполнения приложения. – MilkyWayJoe