所以我有子资源(我认为是)一个普遍的问题瓦特/灰烬数据。我想知道如何正确定制适配器以适应以下情况。与emberjs +烬数据
假装我有两个目标:通过GET
荷兰国际集团api.com/posts
Post
和Tag
调用App.Post.find()
回报所有的职位,App.Post.find(1)
在api.com/posts/1
发现。这很好。
App.Tag.find()
将返回所有可用的api.com/tags
标签。 App.Tag.find(1)
将以正确的URL返回适当的标签。也不错。
如果我通过App.Post.createRecord({...})
创建新的帖子它会POST
到正确的网址。创建Tags
也是一样。到目前为止,一切都很华丽。
在Post
Tags
嵌入,因为它们是 “ON” 这一职务。
App.Adapter.map("App.Post", {
tags: {embedded: 'always'}
});
在加载过程中,Ember-data做的一切都很正常,我仍然非常高兴。
所以我的问题来自于添加Tag
到Post
。我想PUT
或POST
标签对象api.com/posts/1/tags
其中服务器将完成所有服务器端的东西。
目前,
烬数据,与
{embedded: 'always'}
配置集合,将发送到PUT
api.com/posts/1
与整个Post
物体(与包括新Tag
对象),为JSON字符串化字符串。没有
{embedded: 'always'}
配置设置,烬数据将尝试PUT
标签对象api.com/tags
,将在Tag
对象发送一个post_id
参数,以便在服务器端可以做所有的服务器端的东西。
我宁愿不做1因为我的服务器没有这样设置。我宁愿不要做2,因为PUT/POST/GET
对api.com/tags
应该真的是我的应用程序的“标签管理”部分,而不是真的将标签应用于帖子。此行为的另一个示例是Github v3 API for Labels & Issues。
有谁知道的与Ember数据处理此问题的方法? 谢谢!
有完全相同的问题,因为我们思索用同样的方式 - 似乎没有多大意义,因为灰烬是基于REST的,不是吗? – andreimpop 2013-03-23 01:49:35
嘿@andreimpop我最终使用嵌入式:“负荷”,我们自己的Ajax提交到服务器,并手动操纵的余烬数据状态机。所有这一切都awefull - 我打算一个重做时,这就变成真:http://emberjs.com/blog/2013/03/22/stabilizing-ember-data.html – 2013-03-25 21:54:38