当数据库提供 ID 时添加新的 Ember.js 对象/记录

2023-12-21

我正在尝试 Ember.js、Node.js 和 MongoDB。我的思路基于 Ember 网站上的精彩视频《使用 Node.js、Express 和 MongoDB 创建 REST API》。我在 Ember.js 方面遇到了障碍,试图让我的创建记录功能正常工作。

目前,当用户在我的示例应用程序中创建一条记录时,列表中将显示两条记录。发生这种情况是因为当我将记录保存到服务器时,MongoDB 会为该记录创建一个新 ID。当返回响应(包含具有新 ID 的对象)时,记录将被复制,直到我刷新页面。一个具有 Mongo 提供的新 ID,另一个具有 NULL。

这是我创建新对象的地方:

App.NewwineRoute = Ember.Route.extend({
   model: function() {
          return App.Wine.createRecord();
   }
});

这是我将记录存储到 MongoDB 的位置:

App.NewwineController = Ember.ObjectController.extend({
    doneEditing: function() {
        this.get('store').commit();
        this.transitionToRoute('wines');
    }
});

我很好奇使用 ember-data 时处理此问题的最佳方法是什么?我尝试了各种技巧,并耗尽了我的连接来寻找示例。

我最接近的是一个令人讨厌的 hack,将 id 设置为 -1 到新对象/记录,然后在提交后尝试将其删除。可悲的是,对象/记录不会真正被删除,只是在我的列表中显示为空白。另外,从那时起我无法创建任何 id 为 -1 的对象/记录(因为已经存在)。似乎是一个死胡同。

提前致谢。

>'.'

解决方案:

我能够从以下令人惊奇的示例中找到问题的解决方案:

Ember.js CRUD 休息 https://github.com/ddewaele/emberjs-crud-rest

适用于 Ember 的 Node.js REST 服务器 https://github.com/ddewaele/location-rest-api

对于其他遇到 ID 问题的人,上面示例中的 App.Adapter 处理从“_id”到“id”的映射。

App.Adapter = DS.RESTAdapter.extend({
  serializer: DS.RESTSerializer.extend({
    primaryKey: function (type){
      return '_id';
    }
  })
});

在示例的 Node.js 服务内部,数据库调用映射“id”到“_id”:

collection.findOne({'_id':new BSON.ObjectID(id)}, function(err, item) {

再次感谢 ddewaele 发送的示例,这是将这些技术链接在一起的很棒的教程。


None

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

当数据库提供 ID 时添加新的 Ember.js 对象/记录 的相关文章

  • 删除 Ember 数据中 POST/PUT 操作的 JSON 根元素

    我正在使用一个 Web 服务 该服务在 POST PUT 动词中需要如下所示的 JSON id CACTU companyName Cactus Comidas para llevar contactName Patricio Simpso
  • ember 数据验证的标准模式是什么? (无效状态,变成无效……)

    我已经为此苦苦挣扎了一段时间 让我们看看是否有人可以帮助我 尽管自述文件中没有明确说明 但 ember data 提供了一定程度的验证支持 您可以在代码和文档的某些部分看到 https github com emberjs data blo
  • 在 Ember.js 中,存储保存和存储提交之间有什么区别?

    有什么区别 this get store commit and this get store save 没有区别 save是一个别名commit与此一起介绍的PR 使 commit 成为 save 的别名 https github com
  • Ember.js:从集合中检索随机元素

    我有这样的路线 App RandomThingRoute Ember Route extend model function return App Thing find random 这需要一趟 things randomAPI端点 我在控
  • arrayWillChange 中“无法调用未定义的‘销毁’方法”

    我有一个非常标准的数组 模板关系设置 但是当我将一个新项目推入数组时 我得到了上面提到的内容Cannot call method destroy of undefined错误在arrayWillChangeEmber源码的方法 for id
  • ember 中可重用对象的架构

    我正在使用 ember 构建一个管理仪表板 我想创建一个可重用的图表对象 我可以在整个应用程序中拥有多个实例 图表对象应该有一个由一些标记和一个画布元素组成的模板 在插入 DOM 后我需要其 id 以便附加实际的图表 chart js 我尝
  • 标签中的 Ember 车把模板

    ember 特别是应用程序模板 是否可以在 head 标签内进行操作 以便动态更改标题标签 元标签 外部 css 样式表和 favicon 等内容 如果是这样 那么一种干净的方法是什么 为了完成这项工作 我所做的是创建车把助手 例如 如果您
  • 检查 Ember Handlebar If 块助手中的值是否等于

    我们如何检查值是否相等ember js http www emberjs com的 If 块助手 if person John 我们如何在车把上执行上述操作 The if helper 只能测试属性 不能测试任意表达式 因此 在这种情况下
  • Ember.js 在特定页面上包含外部脚本

    我试图弄清楚如何包含外部 javascript 源 图表 但仅限于网站上的单个页面 可以在视图或模板中完成吗 我发现只需添加页面模板不起作用 如果我将它添加到整个网站的模板中 它加载得很好 但是它会加载到每个页面上 我的问题的另一面可能更具
  • 在 Ember.js 中,为什么绑定到数组在 {{#each}} 之外不起作用?

    在下面的代码中 我渲染了 3 个视图 第二个和第三个视图渲染App controller a 单击第一个视图会发生变化App controller a 单击时 第三个视图会更新其内容 第二个视图不更新其内容 为什么 我认为第二个视图绑定到数
  • Ember 数据保存关系

    我很难在 ember 数据中保存一对多关系 我有这样的关系 App ParameterSet DS Model name DS attr string regions DS hasMany App Region App Region DS
  • Ember Data 未找到模型,但它显然存在

    我和其他许多人一样将我的 ember 应用程序升级到了最新版本 但升级后 我的应用程序仍然无法工作 我已经简化了很多 这归结为我的路线 我的路线是这样的 按照过渡指南中的建议 App BoxesRoute Ember Route exten
  • Ember.js 输入字段

    是否可以在 Ember js 视图中使用标准 HTML5 输入字段 或者您是否被迫使用 Ember TextField Ember CheckBox Ember TextArea 和 Ember select 等内置字段的有限选择 我似乎无
  • 恢复对 ember 数据模型的更改

    有没有办法轻松恢复对 Ember 数据模型的更改 我有一个绑定到编辑视图的模型 此视图使用户能够取消编辑 此时我想恢复对模型的更改 有没有一种简单的方法可以做到这一点 而无需克隆所有值 从 Ember Data 版本 2 开始 不再有交易
  • Ember 未在生产环境中加载某些图像

    我有一个 Ember cli 1 13 应用程序 它在公共目录中存储了很多图像 现在 它将正确加载除特定组件中的图像之外的所有图像 该组件的调用方式如下 list item url list url name List Name price
  • emberjs 无法克隆未实现 Ember.Copyable 的 Ember.Object

    我正在使用 ember 1 3 1 和 ember data 1 0 0 beta 5 在创建新模式时我收到 以下错误 断言失败 无法克隆未实现 Ember Copyable 的 Ember Object 以下是我的模型代码 App myM
  • 告诉 ember.js 对其模型的“id”使用不同的密钥

    我陷入了不应该回来的境地idAPI 端点中的字段 我需要告诉 ember 使用slug字段为 而不是id I tried DS RESTAdapter map App Post id key slug 虽然这对于App Post find
  • 对 EmberJS 对象的反思?如何在事先不知道密钥的情况下查找属性密钥列表

    如果您事先不知道所有密钥 是否有办法检索 EmberJS 对象的 set at creations 属性 通过检查器 我看到所有似乎存储在元对象中的对象属性values哈希 但我似乎找不到任何方法来恢复它 例如object getPrope
  • 将 Ember 组件附加到不受 Ember 管理的 DOM 元素

    我想附加一个 Ember 组件ComponentB到由某些非 Ember UI 库生成的 DOM 元素didInsertElement of ComponentA 导致类似的结果 div class ember view component
  • 找不到将 ember-cli 应用程序迁移到 TypeScript 的模块

    我想在我的 ember 项目中尝试 ts 我之前在小型应用程序上尝试过 所以我有 ember cli typify 0 3 1 typescript 2 0 3 typings 1 4 0 ember cli 2 4 3 在我的里面tsco

随机推荐

  • postgres中的SQL将重复事件的日期时间转换为未来的日期时间

    我仅使用日期时间来跟踪表中每周重复发生的事件 我只关心时间和它所在的星期几 我需要能够将设置的 DATETIME 转换为当前或即将到来的未来日期 IE 如何转换存储为的日期2013 02 22 12 00 00使用当前日期到下一次出现的日期
  • 这种不良做法/反模式的名称是什么?

    我试图向我的团队解释为什么这是不好的做法 并且正在寻找反模式参考来帮助我的解释 这是一个非常大的企业应用程序 因此这里有一个简单的示例来说明所实现的内容 public void ControlStuff var listOfThings L
  • 使用 cxf 和 java 第一种方法编写异步服务

    我需要使用 cxf 和 java 第一种方法创建一个异步 Web 服务 但我无法 找到任何可以告诉我如何执行此操作的网络资源 网站吗 您能告诉我如何使用 CXF 和 java 第一种方法编写异步 Web 服务吗 Thanks Shekhar
  • FMDB开放数据库

    我正在尝试打开资源中项目中的数据库 问题是好像找不到数据库文件 我尝试使用完整路径 它有效 但这不是一个好的解决方案 我现在想知道如何打开它 我正在使用这段代码 db FMDatabase databaseWithPath bbdd sql
  • htaccess 从 url 中删除字符并重定向

    我想脱衣 来自网址 例子 mysite com something想要重定向到mysite com something 通过启用 mod rewrite 和 htaccesshttpd conf然后将此代码放入您的 htaccess und
  • Select2:如何防止标签排序

    当用户选择许多项目 标签 时 它们会自动按字母顺序排序 如何使用Select2 4 0防止自动排序并保留用户的顺序 Update 提到的 可能的重复问题 适用于旧版本的 Select2 v3 我询问版本 4 它与旧版本不同 并且提到的答案不
  • flake8 抱怨过滤器子句中的布尔比较“==”

    我在 mysql 数据库表中有一个布尔字段 table model class TestCase Base tablename test cases obsoleted Column obsoleted Boolean 要获取所有未过时测试
  • 本地修改数据的 Firebase 同步:处理错误和全局状态

    我有两个相关问题Firebase 网络平台 https www firebase com docs web s 将本地修改的数据同步到服务器 https www firebase com docs web guide offline cap
  • 不可变的@ConfigurationProperties

    Spring Boot 是否可以拥有不可变 最终 字段 ConfigurationProperties注解 下面的例子 ConfigurationProperties prefix example public final class My
  • 在xml中引用xsd时xsl转换问题

    我对 XSL 相当陌生 需要有关转换问题的帮助 我有一个由 XSD 描述的 XML 文件 我使用 XSL 文件将 XML 转换为 HTML 我想在 XML 文件中引用 XSD 但是当我这样做时 XML 不会被转换 XML 示例
  • 您可以将宽度应用于 :before/:after 伪元素 (content:url(image)) 吗?

    这是我最近的问题的补充 是否可以使用伪元素使包含元素环绕绝对定位元素 如clearfix https stackoverflow com questions 14977324 is it possible to use pseudo ele
  • Android:进度对话框在加载时更改 ProgressDialog.setMessage()

    我希望有人可以帮助我弄清楚如何仅使用一个虚拟计时器来更改进度对话框中的设置消息对话框 该虚拟计时器通过字符串数组或任何其他方式循环 例如 在加载时 它可以说正在加载 gt 构建 gt 渲染 gt 等 就像一个 1 2 秒计时器 这只是为了我
  • 为什么 DYLD_LIBRARY_PATH 没有在这里传播?

    我有一个简单的 C 程序 我试图运行该程序 该程序与我之前构建的 Boost Thread 库的版本链接 我似乎无法理解运行时库路径在 OS X 上的行为方式 由于我的 Boost 库没有RPATH 相对安装名称 https develop
  • printf 双精度数的舍入行为

    有人可以解释这种行为吗 我很清楚浮点数的机器级表示 这似乎与 printf 及其格式有关 这两个数字都用浮点表示法精确表示 检查 乘以 64 给出一个整数 include
  • 如何将音频文件从android客户端发送到servlet服务器

    我想将音频文件 mp3 文件从 android 客户端发送到 servlet 服务器并将其保存在某个位置 如果我在该位置播放保存的 mp3 文件 它应该可以播放 我的问题是有没有办法将 mp3 文件直接从客户端发送到服务器并在 servle
  • 防病毒软件正在阻止 nodemailer - 错误:证书链中的自签名证书

    我正在使用 Nodemailer 发送电子邮件 但我的防病毒软件阻止了 Nodemailer 当我关闭防病毒软件时 发送电子邮件没有问题 有没有可能的方法使用nodemailer发送电子邮件而不禁用防病毒软件 const transport
  • 是否可以开发具有蓝牙功能的 iOS 应用程序?

    以下情况可能吗 假设我有一个具有蓝牙功能的秤 当我打开它时 它会通过 BT 发送重量 从技术上讲是否可以开发一款与体重秤配对并从中接收数据的 iOS 应用程序 据苹果公司称 技术问答 QA1657 使用外部 带蓝牙的配件框架 设备 http
  • 如何在 JavaScript 中围绕折线绘制多边形?

    我想围绕折线绘制一个多边形 在我的例子中 折线是 Google 地图方向 我需要在 Google 地图画布内显示其周围的多边形 First 对于偏移 我使用 JavaScript Clipper 库 我有以下折线 路线 我使用 Clippe
  • 在php中将地球公里转换为弧度

    我正在尝试将地球公里转换为弧度 我知道这个问题已经在其他地方得到了回答 但所有这些答案似乎都没有正确回答 到目前为止我所做的是 radians km 6371 6371 is the radius of earth in Km 它是否正确
  • 当数据库提供 ID 时添加新的 Ember.js 对象/记录

    我正在尝试 Ember js Node js 和 MongoDB 我的思路基于 Ember 网站上的精彩视频 使用 Node js Express 和 MongoDB 创建 REST API 我在 Ember js 方面遇到了障碍 试图让我