Выделите в 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 и отображается при первом нажатии кнопки «Изменить». Это тоже не решило мою проблему. Так что будь то в DOM или нет, скрытый или нет первый прокрутки не удается.

Есть идеи, что я делаю не так?

Редактировать:

Я думаю, что знаю, что происходит, но я не знаю, как это решить. Я использую маршрутизацию в моем приложении. У меня есть маршруты, такие как:

/#/главный админ

Это моя страница администратора, которую я использую, чтобы вызвать проблемы. Вот HTML, к которому я хочу перейти:

<div id="admin-form">
...
</div>

Проблема в том, что когда я использую angular для прокрутки, он меняет мой URL на:

/ # / # Админ админ-форма

Когда это происходит, кажется, что он попадает в контроллер маршрута и перезагружает мою страницу администратора, поэтому прокрутка не происходит. как только я нахожусь на / # / admin # admin-форме, URL-адрес прокрутки работает, потому что angular не видит изменения в моем маршруте и не перезагружает страницу. Но если я изменю свой URL обратно на / # / admin и нажму на кнопку, которая выполняет прокрутку до углового, снова изменит URL на / # / admin # admin-форму.

Я уверен, что это как ожидалось, но я не знаю, как это исправить. Или если смогу.

Ответы на вопрос(5)

Ваш ответ на вопрос