Javascript 余烬数据透视图';x';存储中的记录数
因此,我正在处理余烬数据,并且有一个组件,我想在其中呈现来自存储的这么多记录,比如说10条。我也有一个这些记录的实时提要,我想确保它显示在这个组件中,但我仍然希望不超过10条。现在,如果我有一个静态的对象数组,我会说‘嘿,当新数据进来时删除最后一个’,但是我需要这个组件反映一个实时记录集,这样我的实时提要就可以注入其中 现在,我查询存储以获取从后端加载的基本记录集Javascript 余烬数据透视图';x';存储中的记录数,javascript,ember.js,frontend,ember-data,datastore,Javascript,Ember.js,Frontend,Ember Data,Datastore,因此,我正在处理余烬数据,并且有一个组件,我想在其中呈现来自存储的这么多记录,比如说10条。我也有一个这些记录的实时提要,我想确保它显示在这个组件中,但我仍然希望不超过10条。现在,如果我有一个静态的对象数组,我会说‘嘿,当新数据进来时删除最后一个’,但是我需要这个组件反映一个实时记录集,这样我的实时提要就可以注入其中 现在,我查询存储以获取从后端加载的基本记录集 this.store.query('recordName', { numberOfRecords: 10 }); 然后我呈
this.store.query('recordName', {
numberOfRecords: 10
});
然后我呈现的记录列表被赋值为recordList=this.store.peekAll('recordName')代码>
现在,无论何时创建新记录(它们是在客户端创建的),都会更新。我的缺点是,新记录会自动附加到列表的底部,而不是顶部(这是一个单独的错误),我可以继续将无限的记录加载到此列表中
使用Ember Store是否有一种优雅的方式来限制返回的live record集,还是必须使用自定义javascript在列表上进行一些操作?在组件中对此进行过滤非常简单:
@tracked recordList;
constructor() {
super(...arguments);
this.recordList = this.store.peekAll('recordName');
}
get limitedArray() {
return this.recordList.reverse().slice(0, 10);
}
这是因为实时阵列是自动跟踪的
然后,您可以在模板中执行{{{{each this.limitedArray}}
。在组件中对此进行筛选非常简单:
@tracked recordList;
constructor() {
super(...arguments);
this.recordList = this.store.peekAll('recordName');
}
get limitedArray() {
return this.recordList.reverse().slice(0, 10);
}
这是因为实时阵列是自动跟踪的
然后,您可以在模板中执行{{{{each this.limitedArray}}
。我非常确定,在Ember数据中没有一种方法可以执行此操作;除了可能没有被广泛使用到足以被包括在内之外,还有一个问题是它如何知道应该包括哪些记录。也许在您的情况下,您可以按创建日期或id进行排序,但没有通用的解决方案;除了可能没有被广泛使用到足以被包括在内之外,还有一个问题是它如何知道应该包括哪些记录。也许在您的情况下,您可以按创建日期或id进行排序,但没有通用的解决方案。