Ember 数据查看 'x' 存储中的记录数量

Ember Data peek 'x' amount of records from store

所以我正在使用 Ember 数据并有一个组件,我想在其中呈现来自商店的这么多记录,比如说 10。我也有这些记录的实时提要,我想确保出现在这个组件中,但我仍然希望不超过 10 个。现在,如果我有一个静态对象数组,我只想说 'hey, remove the last as the new data comes in',但是我需要这个组件反映一个实时记录集,以便我的实时饲料可以倒进去。

现在我查询商店以获取从后端加载的基本记录集

this.store.query('recordName', {
    numberOfRecords: 10
});

然后我呈现的记录列表被赋值recordList = this.store.peekAll('recordName'); 现在这将在创建新记录时更新(它们是在客户端创建的)。我的缺点是新记录会自动附加到列表底部而不是顶部(这是一个单独的错误),我可以继续将无限记录加载到此列表中。

Ember Store 是否有一种优雅的方法来限制返回的实时记录集,或者它是否必须导致使用自定义 javascript 对列表进行某些操作?

在组件中对此进行过滤非常简单:

@tracked recordList;

constructor() {
  super(...arguments);
  this.recordList = this.store.peekAll('recordName');
}

get limitedArray() {
  return this.recordList.reverse().slice(0, 10);
}

之所以有效,是因为实时数组是自动跟踪的。

然后您可以在模板中执行 {{#each this.limitedArray}}