Ember.js 与emberjs和x2B的子资源;余烬数据
因此,我有一个(我认为是)普遍的问题,即余烬数据。我想知道如何正确地定制适配器以适应以下情况 假设我有两个对象:Ember.js 与emberjs和x2B的子资源;余烬数据,ember.js,ember-data,Ember.js,Ember Data,因此,我有一个(我认为是)普遍的问题,即余烬数据。我想知道如何正确地定制适配器以适应以下情况 假设我有两个对象:Post和Tag 调用App.Post.find()。这很好 App.Tag.find()将返回api.com/tags上可用的所有标记App.Tag.find(1)将在正确的url处返回相应的标记。也很好 如果我通过App.Post.createRecord({…})创建新帖子,它将Post发布到正确的url。创建标记时也是如此。到目前为止,一切都很顺利 贴子上的标签是嵌入的,因为它
Post
和Tag
调用App.Post.find()。这很好
App.Tag.find()
将返回api.com/tags
上可用的所有标记App.Tag.find(1)
将在正确的url处返回相应的标记。也很好
如果我通过App.Post.createRecord({…})
创建新帖子,它将Post
发布到正确的url。创建标记时也是如此。到目前为止,一切都很顺利
贴子上的标签
是嵌入的,因为它们“在”该贴子上
App.Adapter.map("App.Post", {
tags: {embedded: 'always'}
});
在加载过程中,余烬数据做的一切都很好,我仍然非常高兴
因此,我的问题来自于将标记添加到Post
。我想PUT
或POST
将标记对象放置到api.com/posts/1/tags
中,服务器将在其中执行服务器端的所有操作
目前,
带有{embedded:'always'}
配置集的余烬数据将向api.com/posts/1
发送PUT
,整个Post
对象(包括新的标记
对象)作为JSON字符串
如果没有{embedded:'always'}
配置集,ember data将尝试将标记对象放入api.com/tags
,并将标记
对象与post\u id
参数一起发送,以便服务器端可以完成所有服务器端的工作
我宁愿不做1,因为我的服务器不是那样设置的。我宁愿不做2,因为api.com/tags
上的PUT/POST/GET
s实际上应该用于我应用程序的“标记管理”部分,而不是真正将标记应用于帖子。这种行为的另一个例子是
有人知道如何处理余烬数据吗?
谢谢 > P>您可以考虑重写RestAldSeriaDrTyReCordsFasHyMyRechange函数,以管理在事务期间如何处理标签。
但有一点让人困惑的是,您没有嵌入的关系,但是您不想在模型后关系更改期间执行PUT-on标记。我不确定我是否看到了开箱即用适配器行为的问题。谢谢。。。不过,我不确定我是否理解令人困惑的部分。我确实有很深的感情。。。它们在负载下工作得很好。我只想像github为问题添加标签一样,为帖子添加标签。看:对不起。现在我明白了。您将需要覆盖一点JSONSerializer#addHasMany,甚至可能覆盖JSONSerializer#addBelongsTo。但由于您是这样做的,这会导致关于哪个模型是脏的(要提交的)的混淆。你可能会挖得很深,可能会创建自己的适配器!我真的很感谢你的帮助!再次感谢您为我们的解释提供了一些启示,因为我们以同样的方式对这个问题进行了推理,这似乎没有什么意义,因为余烬是RESTFul的,不是吗?嘿@Andreimpp我最终使用嵌入式:“加载”,我们自己的ajax提交给服务器,并手动操作余烬数据状态机。所有这些都是令人惊叹的-我计划在这成为现实时重做一次: