我有Angular 5 + Firebase应用,我从Firebase列表中获取项目并将其设置为带有* ngFor的视图。
#include <stdio.h>
#define SIZE 3
void pBoard(char board[3][3])
{
int i;
int j;
printf(" 0 1 2");
for (i = 0; i < SIZE; ++i){
printf("\n%d ", i); //After this it crashes
for (j = 0; j < SIZE; ++j){
printf("%c ", board[i][j]);
}
}
}
int main(int argc, char* argv[]) {
char board[3][3] = {{' ',' ',' '},
{' ',' ',' '},
{' ',' ',' '}};
// Not this! "pBoard(board[3][3]);"
// This instead. "pBoard(board);"
pBoard(board);
}
每个项目我都有“日期”字段,格式为“dd.mm.yyyy”。如何将它们设置为按日期排序的组件视图(从最新到较旧)?
如何从Firebase获取帖子:
<a routerLink="post/{{post.url}}" *ngFor="let post of (posts | async)">
<h2>{{ post?.title }}</h2>
<span>{{ post?.date }}</span>
</a>
答案 0 :(得分:1)
您的日期为"dd.mm.yyyy"
,这是一种天生难以排序的日期格式。使用该格式,您必须在客户端上进行排序/过滤。
如果您以ISO-8859格式存储日期(例如yyyy-mm-dd
),您可以让Firebase使用以下方式处理排序/过滤:
this.db.list('posts', ref => ref.orderByChild('date'))
另请参阅AngularFire2 documentation on queries。
请注意,这只会按升序顺序对项目进行排序,因此从最旧到最新。如果你想让它们下降,你要么必须在客户端反转,要么存储一个倒置值。在后一种情况下,我建议存储倒置的时间戳而不是字符串,例如
"negativeTimestamp": -1523753371440
有关详情,请参阅我对firebase -> date order reverse
的回答中的链接