2016-07-08 39 views
5

Sto sviluppando un'app ionica. Che ha un elenco di articoli sulla mia home page, e ogni articolo ha un'icona di commento che dovrebbe fungere da collegamento alla sezione dei commenti nella pagina dell'articolo.Angolare - come collegare da una pagina a un'altra pagina e scorrere fino a un'ancora in ionico senza utilizzare ID

Come posso collegarmi da quella prima pagina per andare ad un ancoraggio nella sezione commenti nella pagina dell'articolo?

Aggiornato

Dal usi angolare "URL" dopo la #, non lavoreranno per creare un collegamento a un ancoraggio da id, che è stato suggerito nella risposta, quindi non vedo per un altro modo di fare esso. Ho provato diverse soluzioni ma nessuna delle seguenti soluzioni non ha funzionato.

Qui, a volte viene visualizzato un valore corretto per l'offset superiore, ma quando si passa a un'altra pagina dell'articolo, il valore rimane lo stesso.

Questo è il codice che ho fatto: lista

articolo Vista:

<a ng-click="commentLink({{article.id}})"> 
       <img class="social-images" src="icons/comment.svg"/> {{ article.comments.length }} 
      </a> 

articolo Vista:

<a name="comments-section"></a> 

Controller:

$scope.commentLink = function(articleId) { 
    return $state.go('main.article', {id: articleId}).then(function(state) { 
     var position = $ionicPosition.offset(angular.element(document.getElementsByName('comments-section'))); 
     console.log(position.top); 
     $ionicScrollDelegate.scrollTo(position.left, position.top); 
    }) 
    }; 

Ho anche provato questo, basato su questo article, ma ancora senza fortuna:

Controller:

$location.hash('comments-section'); 
    var handle = $ionicScrollDelegate.$getByHandle('articleDelegate'); 
    handle.anchorScroll(true); 

Vista:

<ion-content delegate-handle="articleDelegate"> 

<a id="comments-section"></a> 

risposta

2

Se la sezione di commento ha un id (ad es. id = "new-comment"), quindi dalla prima pagina, si può provare:

<a ng-click="goToComment()">...</a> 

E nel controllore:

$scope.goToComment = function() { 
    return $state.go('whatever the comment state is',   {param:param}).then(function(state) { 
    $location.hash('new-comment'); 
    $ionicScrollDelegate.anchorScroll(true) 
    }) 
} 
+0

ho appena provato e sembra che non sta funzionando il primo quando lo fai clic e sembra anche che non si stia rinfrescando o che ricordi lo stato, perché quando inizia a funzionare quando clicco sul link normale, dopo che ho già inserito la pagina in precedenza con il link di ancoraggio, sembra che ricordalo e apri la pagina su quell'ancora e l'url ha quell'hash. @Ladmerc – Marco

Problemi correlati