如何将 Ember 数据与嵌套资源结合使用

2023-11-26

我的应用程序后端有多种资源。为每个资源公开一个模型。

所有其他资源的入口点是通过User模型。我的意思是,给定User我们可以找BlogPost。给定一个BlogPost我们可以找Comments etc.

用 Ember 术语来说,我们可以说:

User hasMany BlogPost
BlogPost hasMany Comment
Comment belongsTo BlogPost

通过后端公开以下形式的 REST API:

GET /api/v1/users/1
GET /api/v1/users/1/blog_posts/1
GET /api/v1/users/1/blog_posts/1/comments/1

我正在尝试弄清楚如何使用 Ember Data 来获取Comment属于某个BlogPost属于某个User.

据我所知,如果我定义一个典型的 Ember 模型Comment:

App.Comment = DS.Model.extend({
  ...
  blogPost: DS.belongsTo('App.BlogPost')
});

并在CommentRoute我有以下内容:

var CommentRoute = MessageRoute.extend({
    model: function(params) {
        this.store.find('comment')
    },

请求发送至:

/api/v1/comments

我什至不知道从哪里开始才能让 Ember Data 使用以下形式的 url:

GET /api/v1/users/1/blog_posts/1/comments/1

我见过几个类似的问题(请参阅下面的链接),但还没有看到其中任何一个的明确答案。其中大多数已经有近一年的历史了,当时 ember-data 可能还没有这样的功能(或者在其中一些线程中是这样声明的)。

我再次询问确认ember-data是否有这样的功能。

类似问题:

  1. Ember 数据嵌套模型
  2. 加载嵌套资源的规范方法
  3. 深度嵌套路由

处理它的最好方法是使用链接。如果您不想这样做,那么它远不受支持,并且很难入侵(管道只是不容易传递信息)。就我个人而言,我建议在这种情况下滚动您自己的适配器(没有 Ember 数据的 Ember).

App.Foo = DS.Model.extend({
  name: DS.attr('string'),
  bars : DS.hasMany('bar', {async:true})
});

App.Bar = DS.Model.extend({
  foo: DS.belongsTo('foo'),
});

json:

{
  id: 1,
  name: "bill",
  links: {
    bars: '/foo/1/bars'
  }
}

例子:http://emberjs.jsbin.com/OxIDiVU/971/edit

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Ember 数据与嵌套资源结合使用 的相关文章

随机推荐

  • 在 Django 管理更改/添加页面中显示外键数据

    我试图让一个模型的属性显示在另一个模型的 Django 管理更改 添加页面中 这是我的模型 class Download model Model task models ForeignKey Task class Task model Mo
  • 重现RabbitMQ网络分区场景

    我想重现网络分区场景具有所有三种模式 ignore autoheal and pause minority 我怎样才能实现这个目标 我尝试停止 sbin service restart 集群的节点之一 但这并没有导致任何网络分区 我还尝试删
  • 在 Android 中以编程方式打开 ServiceMode 菜单

    如何打开安卓服务模式在三星手机上以编程方式菜单 手动的话 我可以通过拨打ussd代码 0011 来完成 这是一个挑战 我花了几个小时寻找解决方案 但恐怕我没有好消息 1 第一次尝试 Intent ACTION DIAL 确实 一开始 可以直
  • R-更改数据框中列的编码?

    我正在尝试更改数据框中列的编码 stri enc mark data updated text 1 UTF 8 ASCII ASCII UTF 8 ASCII ASCII UTF 8 UTF 8 UTF 8 10 ASCII ASCII U
  • not() 和ends-with() 的Xpath 错误

    我有以下 Xpath 表达式 not input ends with Copyright 我希望它能够为我提供所有元素 输入除外 以及以 版权 结尾的任何属性值 我在 Selenium 2 Java API 中执行它webDriver fi
  • C++ 中 min 和 max 函数的使用

    从 C 来看 有std min and std max优于fmin and fmax 为了比较两个整数 它们提供基本相同的功能吗 您是否倾向于使用这些函数集中的一组 还是更喜欢编写自己的函数 也许是为了提高效率 可移植性 灵活性等 Note
  • ClassNotFoundException:net.sourceforge.jtds.jdbc.Driver

    我有连接到 MS SQL 数据库并获取一些数据的 java 代码 在运行代码之前 我在 Unix 服务器中设置了类路径 它以前工作得很好 但由于某种原因 几天前运行的同一个 jar 文件抛出了 Class not found 异常java
  • 不带 typedef 关键字的结构

    我目前正在学习有关structC 中的数据结构以及如何在该结构前加上typedef关键词 这会导致实际结构的变量名称被放置在不同的命名空间中 如几个不同参考文献中所述 C 中 struct 和 typedef struct 的区别 type
  • 如何使用 Cocoa 标记文件和文件夹

    我想用某种颜色 图像 标记文件和文件夹 如何才能实现这一目标 我尝试使用图标服务 它适用于文件 但不适用于文件夹 我看到这种行为有效Dropbox 10 4 10 5 和 10 6 如何做到这一点 博客文章Cocoa 教程 自定义文件夹图标
  • 平面文件与数据库 - 速度?

    我正在制作一个聊天程序 我需要一个地方来存储消息 客户端将每隔 x 秒与服务器联系一次最后收到的消息 id 服务器将在客户端加入的房间中查找 id 高于该 id 的所有消息 由于我不会永远存储内容 因此我正在考虑使用仅包含最后 40 条左右
  • 64 位架构中的汇编寄存器

    继回答有关汇编寄存器大小的问题 首先 尺寸是多少eax ax ah以及 64 位架构中的对应产品 如何访问单个寄存器的字节以及如何访问所有64位寄存器的八个字节 我希望双方都受到关注x86 64 x64 and Itanium处理器 其次
  • 如何在 Chrome 中将 localStorage 数据写入文本文件

    我想将 localStorage 项写入文本文件 并希望调用用户将文件存储在指定位置 请帮助我扩展代码 var data JSON parse localStorage getItem pid var Text2Write for var
  • 以编程方式分析java堆转储文件

    我想编写一个程序 最好用java 来解析和分析java堆转储文件 由jmap创建 我知道有很多很棒的工具已经可以这样做 jhat eclipse 的 MAT 等 但我想从我的应用程序的特定角度来分析堆 在哪里可以阅读有关堆转储文件的结构 如
  • 什么时候需要使用标志 -stdlib=libstdc++?

    什么时候需要使用use flag stdlib libstdc 使用 gcc 编译时的编译器和链接器 编译器会自动使用libstdc 吗 我在 Ubuntu 13 10 上使用 gcc4 8 2 我想使用 c 11 标准 我已经通过了 st
  • 不稳定的 javax.jms.JMSException:同行已处置

    我在使用 Java JMS 时遇到了不稳定的问题 暂时工作正常 但会不规律地抛出以下异常并中断执行 值得注意的是 这种情况是在没有停止代理的情况下发生的 javax jms JMSException Peer vm test 1 dispo
  • 无法在写入上下文中使用方法返回值

    我认为下面的代码应该可以工作 但事实并非如此 已编辑 现在适用于 PHP 5 5 if empty r gt getError Where getError 很简单 public function getError return this
  • 使用备用凭据通过 VBscript 进行安全 LDAP 对象操作

    我知道使用具有显式凭据的 ADsDSOobject 来连接到 AD 对象以读取属性 列出成员等 以及用于操作这些对象 添加组成员 更改属性 的 GetObject LDAP 方法等 但是有没有办法通过显式凭证来操作属性和成员资格 我指的第一
  • 如何从名称中获取选择器?

    我有一个 NSString 其中包含我想用 PerformSelector 调用的选择器的名称 如何从字符串中获取对选择器的引用 NSSelectorFromString name
  • FOSElasticaBundle 和 Doctrine Hydration

    我正忙着检查 elasticsearch 来寻找我正在开始的新项目 我目前正在运行 Symfony2 5 以及最新的 FOSElasticaBundle 等等 我正在对捆绑包的性能进行一些基准测试 我知道弹性本身非常快 但我遇到了一个小问题
  • 如何将 Ember 数据与嵌套资源结合使用

    我的应用程序后端有多种资源 为每个资源公开一个模型 所有其他资源的入口点是通过User模型 我的意思是 给定User我们可以找BlogPost 给定一个BlogPost我们可以找Comments etc 用 Ember 术语来说 我们可以说