2015-03-25 8 views
5

Questo problema è stato di cui sopra: in ionic changing route causes "TypeError: Cannot read property 'scrollTo' of null"ionico scrollTop "Impossibile leggere la proprietà 'scrollTo' di null" (esiste ancora in 1.0.0-rc.1)

La risposta dice che questo bug è stato risolto in beta- 13, ma sto usando 1.0.0-rc.1 e il bug appare ancora.

Nel mio caso, l'errore sta mostrando quando si naviga di nuovo ad una pagina che utilizza $ionicScrollDelegate.scrollTop()

È qualcun altro questo errore dopo l'aggiornamento a rc.1?

MODIFICA: Trovo che se non si chiama $ionicScrollDelegate.scrollTop() automaticamente quando viene caricata la vista, l'errore non viene visualizzato. Devo chiamare lo scrollTop() all'interno di uno specifico evento ionico che aspetta il momento giusto?

+0

Ho appena aggiornato da rc.0 a rc.2 e improvvisamente ho questo errore. Tuttavia, non credo di utilizzare nemmeno uno dei metodi di scorrimento di Ionic ... – XML

risposta

6

Aveva lo stesso problema, anche con v1.0.0 "uranio-unicorno".

Avvolgere la chiamata di scorrimento in un $ timeout aiutato - questo è come appare nel mio codice:

$timeout(function() { 
       $ionicScrollDelegate.scrollTo(scrollPosition.left, scrollPosition.top); 
      }, 0); 
+1

Brillante, ho avuto gli stessi errori, $ timeout funziona come un incantesimo ... – leo

1

Si può semplicemente mettere in

$ionicPlatform.ready(function() { 
    $ionicScrollDelegate.scrollTop(); 
}) 
0

Per quello che vale, io visto questa soluzione su questo thread here e ha funzionato per me con la versione 1.0.0-beta.14

Se l'aggiornamento alla versione 1.0.0-beta.14 non è un'opzione, è possibile modificare ionic-bundle.js arguzia di file h il seguente:

Circa Linea 39910:

this.scrollTop = function(shouldAnimate) { 
    this.resize().then(function() { 
    if(typeof scrollView !== 'undefined' && scrollView !== null){ 
    scrollView.scrollTo(0, 0, !!shouldAnimate); 
    } 
    }); 
}; 

E Circa linea 39813:

if (!angular.isDefined(scrollViewOptions.bouncing)) { 
    ionic.Platform.ready(function() { 
    if(!scrollView){ 
     return; 
    } 
    scrollView.options.bouncing = true; 

    if(ionic.Platform.isAndroid()) { 
     // No bouncing by default on Android 
     scrollView.options.bouncing = false; 
     // Faster scroll decel 
     scrollView.options.deceleration = 0.95; 
    } 
}); 
} 
0

Im tardi per questo, ma è stato sempre lo stesso errore, ma chiamando l'elemento in alto scorrimento con:

$ionicScrollDelegate.scrollTop(); 

ma piuttosto:

var scrollTop = e.detail.scrollTop; 

e fissate il mio utilizzando il seguente:

var scrollTop = $ionicScrollDelegate.getScrollPosition().top;

Im utilizzando anche js di scorrimento come sembra funzionare meglio con il plugin scrolla-sista così ho il seguente nella mia config blocco alla l'inizio della mia app

$ionicConfigProvider.scrolling.jsScrolling(true); 

dove la loro docs state:

Whether to use JS or Native scrolling. Defaults to native scrolling. Setting this to true has the same effect as setting each ion-content to have overflow-scroll='false'. 

Spero che questo aiuta qualcuno

0

favore cambia

e.detail.scrollTop

a

e.target.scrollTop

allora questo lavoro

Problemi correlati