我正在尝试使用已构建的REST api的Ember数据。它适用于顶级路线,例如我有api方面的路线如下:
app.get('/courses', app.controllers.courses.findAll)
app.get('/courses/:id', app.controllers.courses.findById)
以上工作正常,我可以使用Ember Data轻松获取数据。但问题出现在具有多个级别的路线上。例如,课程可以有多个主题,主题可以有多个讲座,因此在api端定义了这些课程的路由。
主题:
app.get('/courses/:course_id/topics', app.controllers.topics.findAll)
app.get('/courses/:course_id/topics/:id', app.controllers.topics.findById)
讲座:
app.get('/courses/:course_id/topics/:topic_id/lectures', app.controllers.lectures.findAll)
app.get('/courses/:course_id/topics/:topic_id/lectures/:id', app.controllers.lectures.findById)
因此,如果我想在课程中获得所有课程,我还需要指定课程ID和主题ID(不在查询中,但在url正文中,正如您可以从后端api中的url结构中看到的那样)。
在Ember我有课程,主题和讲座的模型,但我不知道如何指定自定义网址,以便Ember Data可以在我提出请求时使用这些网址。
一种方法是手动发出ajax请求,但这样就不会在Ember Data Store中填充记录。
或者我可以在Ember中定义模型之间的关系但是这需要对后端api进行更改,这对我来说也不是一个选项。
那么有什么好方法可以解决这个问题吗?
我正在使用:
Ember:v1.6.0-beta.2
Ember-Data:v1.0.0-beta.7
答案 0 :(得分:0)
避免使用Ember数据,没有它,Ember就可以正常工作。
如果您真的想要使用它,请进行ajax调用,然后使用store.pushPayload('type', data)
将数据加载到商店中,如果您真的想要它存储在商店中。