我已经阅读了有关此问题的SO上的每个问题,但仍未找到答案。所以不要将其标记为重复。
我正在使用Angular 2和Typescript与AngularFire一起使用。 我正在使用FirebaseListObservable
从一个端点提取24条最新记录的列表。 这是我的代码:
import { Component } from '@angular/core';
import { AngularFire, FirebaseListObservable } from 'angularfire2';
@Component({
selector: 'story-list',
templateUrl: './story-list.component.html',
styleUrls: ['./story-list.component.scss']
})
export class StoryListComponent {
stories: FirebaseListObservable<any[]>;
constructor(af: AngularFire) {
this.stories = af.database.list('/stories', {
query: {
limitToLast: 24
}
});
}
}
这将返回最新的24个故事列表,正如预期的那样,但当我使用以下代码在页面上呈现它们时:
<p *ngFor="let story of stories | async">{{ story.title }}</p>
它将最古老的故事显示在顶部,最新的故事显示在底部。我理解为什么会这样,并不认为这是一个问题,但我如何才能将其反转?我希望能够在查询中反转它,但如果不可能,我也可以考虑在渲染中反转它。
无论您的答案是什么,请不要只提供文档链接。AngularFire没有完全解释这一点的文档。我已经读过每个字。请提供真正可行的代码。
然而,我绝对不会接受一种解决方案,即在记录创建时存储负日期,然后根据此进行排序。那是我听过的最糟糕的解决方案,一个真正的数据库系统应该允许您在查询中执行此操作。所以请不要建议这样做。
如果您有任何想法,我将非常感激。我不想因为我喜欢Firebase而不得不使用其他产品。
map
操作符来平息TypeScript。我已经更新了答案。 - cartant