Ionic2 + Angular2 + Meteorモバイルアプリでは、連絡先が無限スクロールオプション付きで表示されます。連絡先は、スクロール中に20のバッチに追加されるはずです。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の連絡先が保持され、新たに追加された連絡先はfindContacts()メソッドの新しい20の連絡先に置き換えられます。
したがって、常に40個の連絡先しか表示されません。連絡先を既存の連絡先リストに追加/マージするのはどうしてですか?どんな助力も非常に感謝しています。
ありがとう、 Annadurai。
[結合RxJs Observable配列](http://stackoverflow.com/questions/41929179/combine-rxjs-observable-array) –
"結合RxJs Observable配列"にコメントを追加すると、この質問が開かれているようです非常に小さいフォントとテキストはフォーマットされません。 – annadurai
チーム、誰かがこれを手助けすることは可能でしょうか? – annadurai