2015-03-25 8 views
5

Ten błąd został mowa tutaj: in ionic changing route causes "TypeError: Cannot read property 'scrollTo' of null"Ionic scrollTop „Nie można odczytać właściwość«scrollTo»null” (nadal istnieje w 1.0.0-rc.1)

Odpowiedź mówi, że ten błąd został naprawiony w beta- 13, ale używam wersji 1.0.0-rc.1 i nadal pojawia się błąd.

W moim przypadku, to błąd jest wyświetlany podczas nawigacji z powrotem do strony, która korzysta $ionicScrollDelegate.scrollTop()

Czy ktoś się tego błędu po aktualizacji do rc.1?

EDYCJA: Uważam, że jeśli nie zadzwonię pod numer $ionicScrollDelegate.scrollTop() automatycznie po załadowaniu mojego widoku, błąd nie pojawi się. Czy powinienem dzwonić pod numer scrollTop() w określonym zdarzeniu jonowym, które czeka na odpowiedni czas?

+0

właśnie uaktualniony z rc.0 do rc.2 i nagle ten błąd. Jednak nie sądzę, żebym używał jakiejkolwiek metody przewijania Ionic ... – XML

Odpowiedz

6

Miał ten sam problem, nawet z v1.0.0 "uran-jednorożec".

Owijanie wezwanie przewijania do $ limit czasu pomógł - to jak to wygląda w moim kodu:

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

Świetnie, miałem te same błędy, $ timeout działa jak czar ... – leo

1

Wystarczy umieścić go w

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

Na co warto, ja zobaczyłem to rozwiązanie w tym wątku here i działało dla mnie z wersją 1.0.0-beta.14

Jeśli uaktualnienie do wersji 1.0.0-beta.14 nie jest opcją, możesz zmienić plik ionic-bundle.js plik dowcip h następuje:

Około Linia 39910:

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

iw przybliżeniu linia 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 późno na to, ale był już ten sam błąd, ale poprzez wywołanie przewijania górny element z:

$ionicScrollDelegate.scrollTop(); 

ale raczej:

var scrollTop = e.detail.scrollTop; 

i stały mój stosując następujące:

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

Im również przy użyciu js przewijania jak wydaje się działać lepiej z wtyczką scrolla-sista więc mam następujących w moim config bloku przy początek mojej aplikacji

$ionicConfigProvider.scrolling.jsScrolling(true); 

gdzie ich 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'. 

Mam nadzieję, że to pomoże ktoś

0

Proszę zmienić

e.detail.scrollTop

do

e.target.scrollTop

wtedy ta praca

Powiązane problemy