繁体   English   中英

Angular2 / Ionic2:在侦听器中执行$ http.get

[英]Angular2 / Ionic2 : Execute $http.get within Listener

我试图获取滚动数据并填充“ Article [] ”数组。

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容器吗?

是的,这是一个范围问题。 您应该使用Arrow函数保留此上下文

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM