Ember.js 如何对余烬数据关系进行分页
如何对相关数据的请求进行分页?例如,如果我的人有上千个任务模型,如果我在静息思考中执行以下操作,我会得到所有这些模型Ember.js 如何对余烬数据关系进行分页,ember.js,ember-data,Ember.js,Ember Data,如何对相关数据的请求进行分页?例如,如果我的人有上千个任务模型,如果我在静息思考中执行以下操作,我会得到所有这些模型 var tasks = person.get('tasks'); 这将是太多的数据。如何将一些查询参数强制到幕后工作的请求上?理想情况下,连接到端点,并在端点上附加类似的内容 ?&offset=3&limit=3 下面是一个例子来说明我在IndexController中要完成的任务。我不知道“余烬方式”是如何使用余烬数据进行分页请求的。从中,您还可以提交查询以及find()调用
var tasks = person.get('tasks');
这将是太多的数据。如何将一些查询参数强制到幕后工作的请求上?理想情况下,连接到端点,并在端点上附加类似的内容
?&offset=3&limit=3
下面是一个例子来说明我在IndexController
中要完成的任务。我不知道“余烬方式”是如何使用余烬数据进行分页请求的。从中,您还可以提交查询以及find()
调用
this.store.find('person', { name: "Peter" }).then(function(people) {
console.log("Found " + people.get('length') + " people named Peter.");
});
从指南中:
传递给find()
的搜索选项哈希对Ember来说是不透明的
数据。默认情况下,这些选项将作为
HTTPGET
请求的主体
使用此功能需要服务器知道如何解释
查询响应。
当第一次问这个问题时,它并不存在,但现在有一个名为的插件似乎能够做到这一点,至少对于
RESTAdapter
和JSONAPIAdapter
。它似乎有一些怪癖,因为余烬数据还不支持分页作为一个一流的概念。如果这让您感到不安,那么总会有store.query
,但这确实需要您的API(在您的示例中)在/tasks
端点上支持person\u id
过滤器参数
相关的:
- :获取具有多个关系时支持查询参数
- :未指定对多个关系的分页
(这个问题似乎不涉及JSON API,但讨论是相关的)因为今天仍然没有默认的方法来处理ember中的分页 首先,我们应该看一看更简单的事情,
findAll
请求的分页
这可以通过.query({page:3})
之类的方法来完成,但会导致一些问题:
.query
,直到您获得来自余烬数据本身的更好支持:
store.query('task', { person: get(person, 'id'), page: 3 }
这没什么不好的。你得到了你的结果,并且关系朝着另一个方向发展。只要你不需要缓存,它就可以工作,而不需要对余烬数据进行任何黑客攻击。如果你需要缓存,它需要我在插件中所做的很少的黑客攻击
我们仍然希望ember数据能够完全完成JSONAPI,这需要分页。我认为从API的角度来看,最好的办法是能够请求关系返回的ManyArray的下一页和上一页。它将与JSONAPI一起提供下一个和上一个链接。但要实现这一点,现在您必须深入挖掘余烬数据,而不会比我在许多项目中成功使用的顶级
.query
有很大改进。感谢您的回复。是的,我读过。问题是我的关系端点包含在我的有效负载的链接部分中。如果我想要所有的任务
,我会使用上面的方法,但是如果我想要查询特定人员的任务,我的端点是不同的,people/$id/Tasks
这种类型的结构似乎人员
应该有一个任务:hasMany('task')
关系,然后,您可以使用person.get('tasks')
访问特定人员的任务?我可以尝试,但在我的应用程序中,任务是多态的。它们可以属于个人或公司。然后我仍然需要弄清楚如何访问元数据。你有没有找到一个好的解决方案?