В мобильном приложении Ionic2 + Angular2 + Meteor контакты перечислены с опцией бесконечной прокрутки. Контакты должны быть добавлены в партию 20 во время прокрутки.Наблюдаемое слияние Array для Inifinite-scroll
import {Observable} from "rxjs";
contacts: Observable<Contact[]>;
/* code to pull Contacts from collection */
findContacts() :Observable<Contact[]> {
return Contacts.find({accessGroup: {$in: this.sourcingUser.accessGroup}
}, {sort: {firstName: 1}})
.mergeMap<Contact[]>(contacts =>
Observable.combineLatest(
...contacts.map(contact =>
Suppliers.find({supplierId: contact.supplierId})
.startWith(null)
.map(suppliers => {
if(suppliers){
contact.supplier = suppliers[0];
}
return contact;
})
))).zone();
}
// Code to append contacts
this.contactsSub = MeteorObservable.subscribe('contacts', options).subscribe(() => {
MeteorObservable.autorun().subscribe(() => {
if(!this.contacts){
this.contacts = this.findContacts();
} else {
this.contacts = this.contacts.merge(this.findContacts());
}
});
});
Этот код отлично работает, когда отображаются первые 20 контактов и следующие 20. Но после этого, в evertime, он удерживает первые 20 контактов, а новые прикрепленные контакты заменяются новыми 20 контактами из метода findContacts().
Таким образом, он всегда отображает только 40 контактов. Есть ли способ сохранить/добавить контакты в существующий список контактов? Любая помощь очень ценится.
Thanks, Annadurai.
Возможный дубликат [Объединение массива RxJs Наблюдаемый массив] (http://stackoverflow.com/questions/41929179/combine-rxjs-observable-array) –
Этот вопрос был добавлен как добавление комментариев к объединению RxJs Observable array. с очень маленьким шрифтом, а текст не форматируется. – annadurai
Команда, возможно ли кому-то помочь в этом? – annadurai