Ember模型中的自定义请求网址
我正在尝试使用已经构建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(不是在查询中,而是在网址正文中,正如您可以从后端API中的url结构中看到的那样)。
在Ember中,我有课程模型,主题和讲座,但我不知道如何指定自定义网址,以便Ember Data在发出请求时可以使用这些网址。
一种方法可能是手动进行ajax请求,但这种方式记录将不会填充到Ember Data Store中。
或者我可以在Ember中定义模型之间的关系,但是这需要在后端api上进行更改,这对我来说不是一种选择。
那么有什么好方法可以解决这个问题吗?
我在用:
Ember:v1.6.0-beta.2
Ember-Data:v1.0.0-beta.7
避免Ember数据,Ember在没有它的情况下工作得很好。
如果您真的想使用它,请进行ajax调用,然后使用store.pushPayload('type', data)
将数据装载到商店中,如果您确实需要它在商店中。
上一篇: Custom request urls in Ember model
下一篇: Conventions required of RESTful JSON API to be usable with Ember