我在使用 Ember Data 获取 Ember.js 以命中嵌套资源 API 端点时遇到问题。 这是我的代码:
https://gist.github.com/feliksg/7470254
这是我正在使用的:
DEBUG: ------------------------------- ember.js:3224
DEBUG: Ember : 1.2.0-beta.3 ember.js:3224
DEBUG: Ember Data : 1.0.0-beta.2 ember.js:3224
DEBUG: Handlebars : 1.0.0 ember.js:3224
DEBUG: jQuery : 2.0.3 ember.js:3224
DEBUG: -------------------------------
I'm also using Ember Appkit as the base for this project.
基本上问题是当我尝试提交新帖子时,余烬数据执行以下操作:
向/用户/帖子发出 POST 请求
而不是
向/users/1/posts 发出 POST 请求
此外,由于某种原因,Chrome 检查器显示的请求有效负载显示传递给 API 的表单数据如下所示:
{ "user/post": { "publication":false, "created_at":null, "user":"1" } }
但是,我希望数据像这样传递:
{"post": { "body":"some text...", "published ":false, "created_at":null, "user_id":"1" } }
因此,出于某种原因,即使我在表单中拥有它,它甚至不会在"正文"字段中传递。
任何帮助将不胜感激!
更新 1
当我访问http://localhost:8000/#/users/1/posts
时,它会向/users.json
发送一个 GET API 请求。 我设置PostsRoute的方式一定有问题,但我不确定如何解决它。
更新 2
我已经更新了我的帖子路由以在不使用返回记录的余烬数据的情况下获取 JSON,但现在帖子模板不呈现。 我的帖子路由现在看起来像这样:
PostsRoute = Ember.Route.extend
model: (params) ->
user = @modelFor('user')
userId = user.get('id')
return $.getJSON('http://localhost:5000/api/v1/users/' + userId + '/posts.json')
我还收到以下错误:
加载路由时出错:类型错误:对象 # 没有方法"切片"
当您创建/使用"users/post"时,您正在定义帖子所在的命名空间,而不是它位于特定模型之下。AKA,它不会使用关联的用户模型来构建您的URL,它只会使用用户作为帖子的一部分发出请求。
我不完全确定为什么身体没有连接到柱子上,你确定模型包括身体吗? 您确定要发送到 createRecord 的模型上存在 body 属性吗?
顺便说一句,需求不会在路由上做任何事情,它仅适用于控制器。