Sto usando del scrollTo
e anchorScroll
come questo angolare:Come fermare angolare per ricaricare quando l'indirizzo cambia
app.controller('TestCtrl', function($scope, $location, $anchorScroll) {
$scope.scrollTo = function(id) {
$location.hash(id);
$anchorScroll();
}
});
<a ng-click="scrollTo('foo')">Foo</a>
<div id="foo">Here you are</div>
Il mio problema è che quando clicco sul collegamento la pagina scorre verso il basso, ma nel 50% dei casi le la pagina si ricarica perché l'hash cambia nell'URL.
Come si impedisce a Angular di ricaricare la pagina?
Update: Ho scoperto che qui
https://groups.google.com/forum/?fromgroups=#!msg/angular/BY2ekZLbnIM/MORF-z2vHnIJ
che
The $location service broadcasts a $locationChangeStart event. You can observe that and call event.preventDefault() to stop the navigation. Nice!
qualcuno può dire come osservare quell'evento ed evitare di default
ho messo che nella funzione scrollTo e funziona ma il problema è poi il mio altro click sul lato sinistro del menu si interrompe il lavoro perché anche questo sta modificando l'hash. come posso impedirlo solo quando clicco su link particualr solo – user1865341
non sono sicuro se puoi. Probabilmente dovrai gestire anche questi collegamenti con '$ anchorScroll() 'o ripensare il tuo design. A proposito, questo frammento entra nella funzione del tuo controller non nella funzione 'scrollTo'. – cezar