Ember 数据嵌套模型

2023-11-24

我在使用 NDB 的 Google App Engine 项目中使用 EmberJs 和 Ember-Data。在数据库中,我有 Host、Probe 和 Check 实体。只要我有 REST api,数据库模型并不重要,但为了清楚起见,这里是我的数据库类:

class Host(ndb.Model):
    hostName = ndb.StringProperty()

hostKey = ndb.Key('Host', 'SomeHostId')

class Probe(ndb.Model):
    checkName = ndb.StringProperty()

probeKey = ndb.Key('Host', 'SomeHostId', 'Probe', 'SomeProbeId')

class Check(ndb.Model):
    checkName = ndb.StringProperty()

checkKey = ndb.Key('Host', 'SomeHostId', 'Probe', 'SomeProbeId', 'Check', 'SomeCheckId')

我添加了这些键是为了表明每个主机上都运行着一些探测器,并且每个探测器都会执行一些检查。

  • Host
    • Probe
      • Check

在我的 App.Js 中,我定义了以下模型:

App.Host = DS.Model.extend({
    hostName: DS.attr('string')
    probes: DS.hasMany('probe',{async:true})
});

App.Probe = DS.Model.extend({
    host: DS.belongsTo('host'),
    probeName: DS.attr('string')
    checks: DS.hasMany('check',{async:true})
});

App.Check = DS.Model.extend({
    probe: DS.belongsTo('probe'),
    hostName: DS.attr('string')
});

我定义了以下路由器:

App.Router.map(function() {
    this.resource('hosts', function(){
        this.resource('host', { path:':host_id'}, function(){
            this.resource('probes', function(){
                this.resource('probe', { path:':probe_id'}, function(){
                    this.resource('checks', function(){
                        this.resource('check', { path:':check_id'}, function(){

                        });
                    });
                });
            });
        });
    });
});

在 AppEngine 中,如果已构建以下 URL 路径:

app = webapp2.WSGIApplication([
    ('/', MainHandler),
    webapp2.Route('/hosts', HostsHandler),
    webapp2.Route('/hosts/<hostId>/', HostHandler),
    webapp2.Route('/hosts/<hostId>/probes', ProbesHandler),
    webapp2.Route('/hosts/<hostId>/probes/<probeId>/checks', ChecksHandler),
    webapp2.Route('/hosts/<hostId>/probes/<probeId>/checks/<checkId>/', CheckHandler)
])

http://example.com/hosts返回:

{
    "hosts": [
        {
            "hostName": "SomeHostName1",
            "id": "SomeHostId1"
        },
        {
            "hostName": "SomeHostName2",
            "id": "SomeHostId2"
        }
    ]
}

http://example.com/hosts/SomeHostId1/probes返回:

{
    "probes": [
        {
            "probeName": "SomeProbeName1",
            "id": "SomeProbeId1",
            "host_id": "SomeHostId1"
        },
        {
            "probeName": "SomeProbeName2",
            "id": "SomeProbeId2",
            "host_id": "SomeHostId1"
        }
    ]
}

http://example.com/hosts/SomeHostId1/probes/SomeProbeId1/checks返回:

{
    "checks": [
        {
            "checkName": "SomeCheckName1",
            "id": "SomeCheckId1",
            "probe_id": "SomeProbeId1"
        },
        {
            "checkName": "SomeCheckName2",
            "id": "SomeCheckId2",
            "probe_id": "SomeProbeId1"
        }
    ]
}

我的模板是:

<script type="text/x-handlebars" id="host">
  <h3>{{hostName}}</h3>
  {{#link-to 'probes' probes}}probes{{/link-to}}

  {{outlet}}
</script>

<script type="text/x-handlebars" id="probes">
  {{#each probe in probes}}
    Probe: {{probe.probeName}}
    {{#link-to 'checks' probe.checks}}checks{{/link-to}}
  {{/each}}

  {{outlet}}
</script>

<script type="text/x-handlebars" id="checks">
  {{#each check in checks}}
    Check: {{check.checkName}}
  {{/each}}
</script>

现在我拥有了所有这些...但不知道如何将它们结合在一起以便 Ember-Data 发出正确的 http 请求。到目前为止我只看到请求转到http://example.com/modelName/


目前,Ember Data 不支持 API 端点的这种类型的嵌套路由。对此已有一些讨论,但似乎没有取得任何进展。

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

Ember 数据嵌套模型 的相关文章

  • Ember:命名出口错误

    我不知道为什么我的模板没有在指定的插座中呈现 这是我第一次尝试学习 ember 我被困在指定的渠道上 我想渲染侧边栏模板 in the outlet sidebar 和内容模板 in the outlet content 但我不断在控制台中
  • 如何在 Ember 中捕获数组是否插入到车把中?

    我希望这不是重复的问题 但我无法找到解决方案 我有工作和用户 一个用户有很多工作 JP User DS Model extend firstName DS attr string lastName DS attr string email
  • 如何返回延迟承诺并使用 Ember.Deferred 创建模型?

    我正在尝试创建一个User current 在我的应用程序中 它使用从我的服务器提取数据 getJSON users current function data 我正在使用 Discourse 使用的 Singleton 方法 该方法执行以
  • Ember.JS - 如何在同一页面中使用多个模型、控制器和视图?

    我主要了解 Ember JS 的基础知识 大多数示例实际上只处理单个控制器和模型以在页面上显示某些内容 我真的很想用 Ember 构建一个完整的 Web 应用程序 所以有人能告诉我如何组织和连接多个控制器 模型和视图到一个页面中吗 例如 如
  • EMBER直接路由URL访问不加载数据

    当我直接从浏览器访问我的网址时遇到问题 它不会加载我的单一帖子信息 示例 index html posts 10052308 但当我访问 index html posts 然后单击我的一篇文章时 它会起作用 我的网址会更改为 index h
  • 如何使用新路由器重新渲染应用程序模板?

    The code 我正在使用的版本4fcdbf2560 https github com emberjs ember js tree 4fcdbf256039e8ca8d2647050e0c9a71234c922c与新路由器 在我的应用程序
  • 获取对给定模型对象创建的 EmberJS 视图的引用?

    假设我有一个清单DefinedWord对象 每个对象都渲染在 each 块作为列表DefinedWordViewdiv 位于页面底部 当用户单击一个单词时 我会查找关联的DefinedWord 现在我想要一个参考DefinedWordVie
  • Ember CLI 中的把手助手语法

    在这篇文章中 使用 Handlebars js 迭代基本的 for 循环 https stackoverflow com questions 11924452 handlebar js iterating over for basic lo
  • 从 Ember.Route 中访问参数的正确方法是什么?设置控制器?

    Ember Route model可以访问params变量 但是Ember Route setupController才不是 这对我来说很麻烦 因为我的路径有多个动态段 我需要在我的模板中使用它们 具体来说 我的路径如下所示 project
  • Ember 克隆模型创造新纪录

    我想克隆当前正在编辑的模型 我发现了几种几乎有效的方法 但两者都不完美 1 model get data attributes 获取除驼峰式形式的关系之外的所有属性 生成一条新记录 但关系当然丢失了 2 model serialize 生成
  • Ember.js - 渲染到插座中的默认模板?

    所以我有一个如下所示的页面 Nav Bar Content 我希望导航栏在所有页面上保持不变 所以我使用的方法是将我的页面设置如下 Nav Bar outlet 这太棒了 我现在可以将不同的页面渲染到不同路线的出口中 但是 如果我希望将默认
  • Ember-数据引导模型对象

    当使用非远程 AJAX 调用的现有 JSON 引导 Ember 数据模型对象时 我是否必须进行以下 2 个调用 App store load App Account data var account App store find App A
  • Ember 数据保存方法,创建与更新

    我不明白 Ember 如何确定是否应该更新或创建记录 我认为它是基于 ID 或商店条目 但它似乎是其他东西 代码示例阐明了 this returns the user without making an api call currentUs
  • 为车把/余烬定义模板内的数组?

    我在 ember 应用程序中有一个车把模板 它接受一个数组 我目前像这样声明数组 模板 Gd radio input content radioContent value blue JavaScript App IndexControlle
  • 重写 buildURL 方法以包含父模型的 id

    关于 ember data 和子类化 DS RESTAdapter 来覆盖buildURL 我有两个端点 可以说他们是 example com users user id example com users user id images 将
  • 在路由之间传递参数

    Ember 中将参数从一个路由发送到另一个路由的 适当 方式是什么 例如 我有两条这样定义的路线 this resource activities path activities on date function this route ne
  • Ember - 如何在嵌套数据对象上使用pushObject?

    由于这篇文章 我已经可以将新对象推入 jobs 和 jobProducts 数组中如何在 Ember js 中创建嵌套模型 https stackoverflow com questions 9186214 how to create ne
  • 当加载详细条目和条目列表时,Ember 数据会删除列表响应中未设置的字段

    我有一个Book模型 具有多个属性 例如title author and prices prices是一个历史定价信息的大列表 当我从 API 请求图书列表时 我排除了prices场以保持响应较小 在书籍详细信息视图中 我请求完整的书籍信息
  • ember-data:如何制作正在保存/已保存的闪存消息

    为了在我的应用程序顶部制作一个黄色的 正在保存 已保存 指示符消息 我希望有一个布尔属性来指示当前是否有任何余烬数据记录正在运行 我试过这个 App store DS Store create isSaving gt for record
  • 每次转换时都会调用 Ember.js 路由钩子

    Ember js 中是否有一个在每次转换时都会调用的路由钩子 即使新路由与旧路由相同 例如 单击同一路由的顶级导航链接 I tried activate 但它只被调用一次 当我使用顶级导航转到我已经所在的同一路线时 不会再次调用它 示例 j

随机推荐

  • 如何删除babel添加的全局“use strict”

    我正在使用 use strict 的函数形式 并且不想要 Babel 在转译后添加的全局形式 问题是我正在使用一些不使用 use strict 模式的库 并且在连接脚本后可能会抛出错误 正如 Babel 6 中已经提到的 它是transfo
  • 如何在 Kubernetes 中设置自定义 HTTP 错误

    我想创建一个自定义 403 错误页面 目前我已经创建了一个 Ingress 并且在注释中我有这样的内容 nginx ingress kubernetes io whitelist source range 100 01 128 0 20 8
  • 带有缺失值的 dplyr 交叉表

    我想在 R 中使用dplyr 我有充分的理由不只使用底座table 命令 table mtcars cyl mtcars gear 3 4 5 4 1 8 2 6 2 4 1 8 12 0 2 library dplyr library t
  • 禁用其他网站的 iframe 嵌入

    我想禁用从我的网站到其他网站的 iframe 嵌入页面 我做了这个js 脚本有效 但我有 page01 php 和 page02 php 我想在 page01 php 源代码中插入 page02 php 的 iframe 当我这样做时 我被
  • 使用嵌套自定义对象进行 NSCoding?

    我有一系列嵌套对象 我需要将它们通过 NSCoding 协议 以便我可以将顶级对象保存到 NSUserDefaults 中 这是对象的结构 导师 班 NSMutableArray 保存 的实例 类 类 NSMutableArray 保存 的
  • 覆盖溢出:用 z-index 隐藏

    我正在使用 coda bubble jquery 插件 我需要让我的气泡在溢出隐藏 div 中弹出 这是我的示例代码
  • jQuery jqGrid 当编辑行完成时显示消息

    我在这里关注本教程http www trirand com blog jqgrid jqgrid html在 实时数据操作 gt 编辑行 我的网格从脚本接收数据a php 之后用户可以通过jqGrid修改这个数据 jqGrid修改数据后会将
  • 如果从函数返回,局部变量的成员子对象也会被移动吗?

    C 11 标准规定 如果满足复制省略的条件 12 8 31 实施应处理returned 局部左值变量和函数参数 首先作为右值 移动 如果重载解析未按详细说明成功 则应将其视为左值 复制 12 8 class copy p32 当满足或将满足
  • 在 R 中将列表转换为数据帧

    所以我有一个清单 说 L1 lt list 1 10 5 14 10 19 现在我试图将列表的输出作为数据帧 以便我的输出看起来 1 1 2 3 4 5 6 7 8 9 10 2 5 6 7 8 9 10 11 12 13 14 3 10
  • 什么是“跨度”以及何时应该使用“跨度”?

    最近我收到了使用建议span
  • php str_getcsv 数组问题

    我正在上传 csv 文件 然后使用 str getcsv 解析它 一切都很好 只是我需要一种方法来循环它们 理想情况下 如果数组返回并看起来像这样 那就太好了 Array 1 gt Array 0 gt 1 first id in csv
  • C 宏:将数字转换为字符串

    我有一个表 定义 5x7 点显示屏上的符号外观 就像是 extern UINT8 symbols 5 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x5F 0x0 0x0 0x0 0x7 0x0 0x7 0x0 0x14 0x7
  • 如何使用 Phantomjs 向下滚动加载动态内容

    我试图从当用户向下滚动到底部 无限滚动 时动态生成内容的页面中抓取链接 我尝试过使用 Phantomjs 做不同的事情 但无法收集首页之外的链接 假设加载内容的底部元素有类 has more items 它一直可用 直到滚动时加载最终内容
  • NSWindow - 显示始终位于当前窗口顶部的新窗口

    我希望我的 NSWindow 显示始终位于当前窗口顶部的新窗口 它们不应该位于其他窗口的顶部 此外 当原始窗口移动时 它们不应该移动 我怎样才能做到这一点 Use NSWindow s addChildWindow ordered or s
  • 即将发布的 Java 8 版本中的虚拟扩展方法

    当我看到类似的代码片段时 interface A void a void b default System out println b void c final System out println c I have one questio
  • 如何具体化 Prolog 的回溯状态以执行与 Clojure 中的“lazy seq”相同的任务?

    这是用 Clojure 编写的数字快速排序算法 它基本上是快速排序算法 Clojure 的乐趣 第 2 版 第 133 页 我稍微修改了它以 希望 更好的可读性 因为原始版本感觉有点太紧凑 defn qsort inner work laz
  • Python 中 exit(0) 和 exit(1) 的区别

    有什么区别exit 0 and exit 1 在Python中 我尝试环顾四周 但没有找到关于这些方面的具体问题 如果已经回答了 一个链接就足够了 0 和 1 是退出代码 exit 0 意味着干净退出 没有任何错误 问题 exit 1 意味
  • wav 文件中特定点的分贝值

    我正在尝试测量 wav 文件的引入和引出 最好是第一和最后 5 秒左右 我基本上是想指定一个数值 表示 这首歌有一个缓慢的开头 或 这首歌有一个突然的结束 我的想法是获得 dB 值的斜率 但我似乎找不到可以提供 dB 值的 Linux 命令
  • 为什么重写方法并向参数类型添加 const 有效? [复制]

    这个问题在这里已经有答案了 考虑以下示例 include
  • Ember 数据嵌套模型

    我在使用 NDB 的 Google App Engine 项目中使用 EmberJs 和 Ember Data 在数据库中 我有 Host Probe 和 Check 实体 只要我有 REST api 数据库模型并不重要 但为了清楚起见 这