我正在尝试在列出联系人的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 时,它会循环并出错。你能告诉我如何连接可观察数组对象吗?任何帮助将不胜感激。我已经在这个问题上坚持了一个多星期了。谢谢。
您可以通过将联系人更改为数组来实现此目的
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);
});
});
});