2017-06-07 4 views
1

Je suis très proche de finir ma page, et j'ai rencontré ce bug bizarre. Lorsque j'utilise ng-include, les pages se chargent correctement, mais elles reprennent le défilement de la position précédente, de sorte qu'elles ne démarrent pas en haut à chaque clic. J'ai eu recours à la spirale d'ancrage, mais cela ne fonctionne pas correctement. Je dois à nouveau cliquer sur le lien, pour charger le contenu, et si je clique à nouveau sur le même lien, cela décale la page vers une position bizarre.

Ceci est mon code dans le contrôleur:

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

et c'est la partie HTML:

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

l'identifiant est passé via ng-click="ng-click="toPage($index, button.ids);"

est-il un moyen de mettre le location.hash dans l'expression [onload] et autoscroll de cette façon?

grâce

Répondre

0

Probablement le rouleau d'ancrage ne fonctionne pas parce que le contenu de la page n'a pas été complètement chargé quand il a été appelé.

Vous pouvez résoudre ce problème en utilisant un délai d'expiration.

$timeout(function() { 
    $anchorScroll(); 
},500); 
+0

merci. J'ai réussi à le pirater en utilisant réellement un timeout 0sec, pour les premières charges. si vous revenez à l'article précédent, il conserve la position de défilement – Irakli