我试图在一个列出联系人的Ionic2 + Meteor移动应用程序中进行无限滚动。在以下代码中,findContacts()函数一次返回10个联系人。 联系人:可观察;
findContacts() :Observable<Contact[]> {
/* logic to pull Contacts is here ...*/
}
this.contactsSub = MeteorObservable.subscribe('contacts', options).subscribe(() => {
MeteorObservable.autorun().subscribe(() => {
if(!this.contacts) {
this.contacts = this.findContacts();
}
});
});
每次用户滚动到列表末尾并获得接下来的10个联系人时,都会调用此代码。但这里的问题是,它不会附加到已经列出的联系人身上。它只显示了新拉出的10个联系人。我尝试了Observable.concat,但它没有给出令人反感的结果。当我尝试使用mergeMap时,它会出现无关紧要的循环和错误。 你能告诉我如何连接Observable数组对象吗?任何帮助是极大的赞赏。我已经坚持这个问题一个多星期了。 感谢。
答案 0 :(得分:0)
您可以通过将联系人更改为数组
来实现此目的contacts: Array<any>= []
findContacts() :Observable<Contact[]> {
/* logic to pull Contacts is here ...*/
}
this.contactsSub = MeteorObservable.subscribe('contacts', options).subscribe(() => {
MeteorObservable.autorun().subscribe(() => {
this.findContacts().subscribe(data => {
this.contacts = this.contacts.concat(data);
});
});
});