我需要为我的应用程序创建一个排名类型,以列出最合格的产品。有什么想法吗?
我的火力基地
products- | id-- | | liked:2 | | name: x | id-- | | liked:1 | | name: y | id-- | | liked:3 | | name: z
我的申请
X 2 y 1 z 3
我需要
z 3 X 2 y 1我找到了这个。 用于反转
var ref = new Firebase('https//buzzg**.firebaseio.com/comments');
query = ref.orderByChild('timestamp');
comments = [];
query.once('value', function(snap) {
snap.forEach(function(ss) {
comments.push(ss.val());
});
comments = comments.reverse();
});
但我不知道实施。因为(foreach)里面的函数(ss)错误
答案 0 :(得分:0)
this.rankedItems$ = this.angularfireDatabase.list('products')
.map(products => products.sort((a, b) => b.liked - a.liked));
这将为您提供一个可观察的数组,每个数组包含{liked, name}
个对象,按liked
降序排序。您可以在模板中使用它,如下所示:
<h3>Products ranked by likes</h3>
<ul>
<li *ngFor="let item of rankedItems$ | async">
{{item.name}}
</li>
</ul>
或者,你可以做到
this.angularfireDatabase.list('products', {query:
orderByChild: 'liked'
}};
但这仅限于按升序排序。