【发布时间】:2018-04-09 06:11:47
【问题描述】:
我需要做的基本上是获得最后 50 名中的前 10 名。或者实际上是 limitToLast(50) THEN orderByChild。
现在这段代码可以很好地获取我的 ENTIRE LIST(thousands) 的前 50 个并反转它以获得正确的显示顺序,但它正在对整个列表进行排序并返回前 50 个。我需要对最后一个中的前 10 个进行排序50 个条目。
export class DisplayComponent{
trackFbObjects = (idx, obj) => obj.$key;
fml: Observable<any>
constructor(db: AngularFireDatabase) {
this.fml = db.list('vertigo', ref => ref.limitToLast(50).orderByChild("totalvote")).valueChanges()
.map((Array) => Array.reverse());
}
}
然后我将使用 NgFor 和 NgIf 从 50 个中提取 10 个,如下所示:
<ul *ngFor="let item of (fml | async); let i = index; trackBy:trackFbObjects">
<li *ngIf="i<10"> {{ item.title }} </li></ul>
我在想也许可以只做 limitToLast(50) 然后在 Array.reverse() 期间可能通过“totalvote”对其进行排序?我不知道,但我找不到可行的解决方案,我们将不胜感激。
如果有帮助,我的条目如下所示:
vertigo
-L9X0AiwPemOIepVm5gf
-totalvote: "333"
-title: "Smile."
【问题讨论】:
标签: firebase firebase-realtime-database angularfire2