Ember Store:排序,过滤,查找记录

时间:2016-11-03 20:54:25

标签: ember.js ember-data findby

我在索引路径中将记录加载到我的商店中:

model: function(){
    return Ember.RSVP.hash({
        cars: this.store.query('car',{}).then(function(data){

        })
    });
}

然后我去我的汽车路线peekAll(没有网络请求)并获得所有的汽车记录:

model: function() {
    return Ember.RSVP.hash({
        cars: this.store.peekAll('car').sortBy('name')
    });
}

你会注意到我可以使用'sortBy'根据本地商店db中的字段对记录进行排序。

我不明白的是如何过滤或查找商店的记录?例如,如果我想执行以下操作该怎么办:

  • 按名称对所有车辆记录进行排序,然后过滤/查找车辆,使其只返回1998年或之后购买的车辆
  • 过滤记录,因此我只显示“Jaguars”
  • 的汽车
  • 最多只返回10条记录,即使商店的记录超过10条。

我查看了findByfilterBy,但文档似乎有点缺乏有关如何使用示例实现的详细信息。

1 个答案:

答案 0 :(得分:5)

首先,如果您将{}传递给.query(),您可能应该使用findAll

您可以使用filter

this.store.peekAll('car')
  .filter(car => car.get('year') >= 1998)
  .sortBy('name')
  .slice(0, 10);

filterBy是您要过滤特定值的。因此,如果您希望所有caryear 1998

一起使用
this.store.peekAll('car')
  .filterBy('year', '1998');