2016-11-21 2 views
2

Я пытаюсь принести Данные по свитку и заполнить массив "статьи []".

httpLoadArticles() { 
    this.httpWSGetInit().subscribe(
            articles => this.articles = articles, 
            err => { 
             console.log(err); 
            }, 
        () => console.log('Searching complete') 
} 

И текущая функция.

httpWSGetInit() : Observable<Article []> { 

    return this.http.get(R.WEBSITE_URL_WS + this.articlesPagination) 
         .map((res:Response) => res.json()) 
         .catch((error:any) => Observable.throw(error.json().error || 'Server error')); 
} 

Работы довольно хорошо.

Но метод http.get никогда не вызывается в addScrollListener.

@ViewChild(Content) content: Content; 

ionViewDidLoad() { 
     this.content.addScrollListener(this.onPageScroll); 
} 

onPageScroll(event) { 
     this.httpLoadArticles() 
} 

Я попытался установить GET как synchronous но, кажется, ничего не изменится. Это вопрос scope? Как addScrollListener является чистым методом JS и не может быть прикреплен к контейнеру angular2?

ответ

3

Да, его проблема с объемом. Вы должны использовать функцию Arrow для сохранения этого контекста.

ionViewDidLoad() { 
    this.content.addScrollListener(() => this.onPageScroll()); 
} 
+0

Спасибо, это работает как шарм :). Есть ли у вас документация? – Dinath