$location.hash() нарушает мою функцию

Я очень близок к завершению своей страницы, и я столкнулся с этой странной ошибкой.

Когда я использую ng-include, страницы загружаются нормально, но они возобновляют прокрутку с предыдущей позиции, поэтому они не начинаются сверху при каждом щелчке.

Я прибегнул к якорной прокрутке, но она не работает должным образом. Мне нужно снова щелкнуть ссылку, чтобы загрузить содержимое, и если я снова щелкну ту же ссылку, она сместит страницу в какое-то странное положение.

Это мой код в контроллере:

    $scope.toPage = function (index, id) {
    $scope.missiveIndex = index;
    $scope.contentsDown();
    $location.hash(id);
};

и это часть HTML:

<article id="{{articles.ids}}" class="stories-anim" ng-repeat="articles in stories" ng-hide="!isMissiveSlideIndex($index)" ng-include="articles.content" [autoscroll]>
</article>

идентификатор передается через ng-click="ng-click="toPage($index, button.ids);"

есть ли способ поместить location.hash в выражение [onload] и таким образом выполнить автоматическую прокрутку?

Благодарность


person Irakli    schedule 07.06.2017    source источник


Ответы (1)


Вероятно, якорная прокрутка не сработала, потому что содержимое страницы не было полностью загружено при ее вызове.

Вы можете решить это, используя тайм-аут.

$timeout(function() {
  $anchorScroll();
},500);
person marcosspn    schedule 07.06.2017
comment
Спасибо. мне удалось взломать его, фактически используя тайм-аут 0 секунд для первых загрузок. если вы вернетесь к предыдущей статье, она сохранит положение прокрутки - person Irakli; 08.06.2017