我正在尝试将 Ember 数据与已构建的 REST api 一起使用。它适用于顶级路由,例如我在 api 端有课程路由,如下所示:
app.get('/courses', app.controllers.courses.findAll)
app.get('/courses/:id', app.controllers.courses.findById)
上面工作正常,我可以轻松地使用 Ember Data 获取数据。但是具有多个级别的路线会出现问题。例如,课程可以有多个主题,主题可以有多个讲座,因此它们的路由在 api 端是这样定义的。
Topics:
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 中,我有课程、主题和讲座的模型,但我不知道如何指定自定义 url,以便 Ember 数据在我发出请求时可以使用这些 url。
一种方法是手动发出 ajax 请求,但这种方式记录不会填充到 Ember 数据存储中。
或者我可以在 Ember 中定义模型之间的关系,但这也需要更改后端 api,这对我来说不是一个选择。
那么有没有什么好的办法来解决这个问题呢?
我在用:
Ember:v1.6.0-beta.2
Ember-数据:v1.0.0-beta.7