从“RESTful”网址加载关系

时间:2014-08-25 23:33:47

标签: ember.js relationships

我试图弄清楚如何使用EmberJS通过子资源路由加载对象的关系。

例如:我需要点击api的网址是/workspace/:workspace_id/projects,它将返回与工作区相关的项目数组。 EmberJS最适合使用单级资源,因此如果我尝试执行this.store.find('project'),则会向/projects触发GET请求。

我有一些请求的上下文,因为请求来自的网址是/workspace/:workspace_id。我的直觉是在自定义适配器中使用window.location.pathname来构建正确的请求URL。

什么是正确的," Ember方式"这样做?

1 个答案:

答案 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"。

这有帮助吗?