Я пытаюсь перейти к элементу на странице после того, как я его покажу. И.Е. У меня очень длинный список пользователей, и я показываю их как список. У каждого элемента есть значок редактирования, который вы можете щелкнуть. При щелчке я показываю форму пользователя, которая находится в верхней части страницы. Затем я хочу прокрутить список до этого места.Прокрутить вниз до angularjs
// helper method to scroll
$scope.scrollTo = function (id) {
$location.hash(id);
$anchorScroll();
}
На редактирования клику пользователя:
$scope.editUser = function (user) {
$scope.user = user; // set user
$scope.setShowUserForm(true); // show edit form
$scope.scrollTo('admin-form'); // scroll to the form
}
Это прекрасно работает в первый раз, за исключением. Я проверил DOM, и мой элемент «user-form» находится в DOM, но скрыт, и это то, что я хочу. Когда я нажимаю на пользователя редактирования, первый раз прокрутка не работает. После первого раза все терпит неудачу. Я не уверен, что изменилось.
Я также установил форму для отображения по умолчанию, чтобы я знал, что это было в DOM и видимо в первый раз, когда я нажимаю edit. Это тоже не решило мою проблему. Так ли это в DOM или нет, скрытый или не первый прокрутка к неудаче.
Любая идея, что я делаю неправильно?
Edit:
Я думаю, я знаю, что происходит, но я понятия не имею, как ее решить. Я использую маршрутизацию в своем приложении. У меня есть маршруты, такие как:
/#/главный /#/админ
Его моя страница администратора, который я использую свиток, который вызывает проблемы. Вот HTML я хочу, чтобы перейти к:
<div id="admin-form">
...
</div>
Проблема заключается в том, когда я использую угловой для прокрутки она изменяет свой URL, чтобы:
/#/админ # админ-формы
Когда делает это, кажется, попадает в контроллер маршрута и перезагружает мою страницу администратора, поэтому свиток не происходит. как только я нахожусь в URL-адресе/#/admin # admin-form, прокрутка работает, потому что угловой не видит изменения в моем маршруте и не перезагружает страницу. Но если я верну свой url обратно в/#/admin и нажмите кнопку, которая выполняет прокрутку до углового, снова изменит URL-адрес на/#/admin # admin-form.
Я уверен, что это так, как ожидалось, но я понятия не имею, как это исправить. Или, если смогу.
Это поможет увидеть больше кода.Я полагаю, вы делаете это в рамках директивы? –