我试图弄清楚如何使用EmberJS通过子资源路由加载对象的关系。
例如:我需要点击api的网址是/workspace/:workspace_id/projects
,它将返回与工作区相关的项目数组。 EmberJS最适合使用单级资源,因此如果我尝试执行this.store.find('project')
,则会向/projects
触发GET请求。
我有一些请求的上下文,因为请求来自的网址是/workspace/:workspace_id
。我的直觉是在自定义适配器中使用window.location.pathname来构建正确的请求URL。
什么是正确的," Ember方式"这样做?
答案 0 :(得分:0)
您可以做的是将Projects
上的Workspace
关系定义为异步,然后为链接提供正确的URL以查找工作区的项目。例如,端点/workspace/1
的响应是:
{
workspace: {
id: 1,
links: {
projects: "https://example.com/api/workspace/1/projects"
}
}
}
然后,如果代码中某处你会做
this.store.find('workspace', 1).get('projects')
Ember Data将知道工作区的项目可以在您在JSON响应中提供的链接中找到,即" https://example.com/api/workspace/1/projects"。
这有帮助吗?