【发布时间】:2018-09-25 00:09:49
【问题描述】:
我有 Angular 5 + Firebase 应用程序,我从 Firebase 列表中获取项目并使用 *ngFor 将它们设置到视图中。
<a routerLink="post/{{post.url}}" *ngFor="let post of (posts | async)">
<h2>{{ post?.title }}</h2>
<span>{{ post?.date }}</span>
</a>
每个项目我都有一个格式为“dd.mm.yyyy”的“日期”字段。如何将它们设置为按日期(从最新到旧)排序的组件视图?
如何从 Firebase 获取帖子:
getPosts(): Observable<any[]> {
return this.db.list('posts').snapshotChanges().map(changes => {
return changes.map(c => ({
key: c.payload.key,
...c.payload.val() }));
});
}
【问题讨论】:
-
您可能可以在获得
posts时对其进行排序。我们可以看看代码吗? -
正如@ConnorsFan所说,您可以从firebase查询并获取排序数据,如果没有,您还可以在订阅模板之前映射可观察对象并在服务中排序
-
@ConnorsFan 我在问题中添加代码
-
我不知道 firebase 但你可以试试这个语法:
this.db.list('posts', { query: { orderByChild: 'date' } }).map((arr) => { return arr.reverse(); }).snapshotChanges()...。可能有一种方法可以用orderByChild指定“desc”;如果是这样,就不需要调用reverse()。
标签: angular firebase firebase-realtime-database angularfire2 angular-pipe