是否可以撤销 Firebase 列表?
Is it possible to reverse a Firebase list?
我已经阅读了关于 SO 的所有问题,但我仍然没有找到答案。所以不要将其标记为重复。
我将 AngularFire 与 Angular 2 和 Typescript 一起使用。我正在使用 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
}
});
}
}
这个 returns 24 个最新故事的列表,正如预期的那样,但是当我在页面上呈现它们时:
<p *ngFor="let story of stories | async">{{ story.title }}</p>
它在顶部显示最旧的故事,在底部显示最新的故事。我明白这是为什么,我并不是说这是一个问题,但我该如何扭转呢?我希望能够在查询中反转它,但如果那不可能,我愿意以某种方式在渲染中反转它。
无论您的答案是什么,请不要只 link 文档。 AngularFire 没有完整解释这一点的文档。我读了每一个字。请提供真正的工作代码。
然而,我绝对不会接受的一种解决方案是在创建时在记录中存储负日期,然后根据该日期进行排序。这是我听过的最糟糕的解决方案,而真正的数据库系统将允许您在查询中执行此操作。所以请不要建议它。
如果您有任何想法,我将不胜感激。我不愿意使用其他产品,因为我喜欢 Firebase。
据我所知,Firebase 查询总是按升序排列。
但是,您可以使用 map
运算符来反转呈现列表的顺序,以反转由 AngularFire2
可观察对象发出的数组:
import "rxjs/add/operator/map";
...
this.stories = af.database.list('/stories', {
query: {
limitToLast: 24
}
}).map((array) => array.reverse()) as FirebaseListObservable<any[]>;
如果您更喜欢在模板中执行此操作,可以查看 。
我已经阅读了关于 SO 的所有问题,但我仍然没有找到答案。所以不要将其标记为重复。
我将 AngularFire 与 Angular 2 和 Typescript 一起使用。我正在使用 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
}
});
}
}
这个 returns 24 个最新故事的列表,正如预期的那样,但是当我在页面上呈现它们时:
<p *ngFor="let story of stories | async">{{ story.title }}</p>
它在顶部显示最旧的故事,在底部显示最新的故事。我明白这是为什么,我并不是说这是一个问题,但我该如何扭转呢?我希望能够在查询中反转它,但如果那不可能,我愿意以某种方式在渲染中反转它。
无论您的答案是什么,请不要只 link 文档。 AngularFire 没有完整解释这一点的文档。我读了每一个字。请提供真正的工作代码。
然而,我绝对不会接受的一种解决方案是在创建时在记录中存储负日期,然后根据该日期进行排序。这是我听过的最糟糕的解决方案,而真正的数据库系统将允许您在查询中执行此操作。所以请不要建议它。
如果您有任何想法,我将不胜感激。我不愿意使用其他产品,因为我喜欢 Firebase。
据我所知,Firebase 查询总是按升序排列。
但是,您可以使用 map
运算符来反转呈现列表的顺序,以反转由 AngularFire2
可观察对象发出的数组:
import "rxjs/add/operator/map";
...
this.stories = af.database.list('/stories', {
query: {
limitToLast: 24
}
}).map((array) => array.reverse()) as FirebaseListObservable<any[]>;
如果您更喜欢在模板中执行此操作,可以查看