gpt4 book ai didi

ember.js - emberjs + ember-data 子资源

转载 作者:行者123 更新时间:2023-12-04 12:55:12 24 4
gpt4 key购买 nike

所以我遇到了(我认为是)关于 Ember-data 的一般问题。我想知道如何正确自定义适配器以适应以下情况。

假设我有两个对象:PostTag
调用 App.Post.find()返回 GET 的所有帖子ing api.com/posts , App.Post.find(1)位于 api.com/posts/1 .这很好。
App.Tag.find()将返回在 api.com/tags 处可用的所有标签. App.Tag.find(1)将在正确的网址返回适当的标签。也很好。

如果我通过 App.Post.createRecord({...}) 创建新帖子它将 POST到正确的网址。创建 Tags 也是如此.到目前为止,一切都是花花公子。
TagsPost被嵌入是因为它们“在”那个帖子上。

App.Adapter.map("App.Post", {
tags: {embedded: 'always'}
});

在加载期间,Ember-data 一切正常,我仍然非常高兴。

所以我的问题来自添加 TagPost .我要 PUTPOST标签对象到 api.com/posts/1/tags服务器将在这里完成所有服务器端的事情。

目前,
  • Ember-data,带有 {embedded: 'always'}配置集,将发送 PUTapi.com/posts/1与整个Post对象(包含新的 Tag 对象)作为 JSON 字符串化字符串。
  • 没有 {embedded: 'always'}配置集,ember-data 将尝试 PUT标签对象到 api.com/tags并将发送 Tag带有 post_id 的对象参数以便服务器端可以做所有服务器端的事情。

  • 我宁愿不做 1,因为我的服务器不是那样设置的。我宁愿不做 2 因为 PUT/POST/GETapi.com/tags应该真正用于我的应用程序的“标签管理”部分,而不是真正将标签应用于帖子。此行为的另一个示例是 Github v3 API for Labels & Issues .

    有谁知道用 ember-data 处理这个问题的方法?
    谢谢!

    最佳答案

    您可能会考虑覆盖 RESTAdapter#dirtyRecordsForHasManyChange 函数来管理在事务期间如何处理标签。

    但是您没有嵌入关系有点令人困惑,但是您不想在 Post 模型关系更改期间对标签执行 PUT。我不确定我是否看到了开箱即用的适配器行为问题。

    关于ember.js - emberjs + ember-data 子资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15193745/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com