ember.js - 我可以使用 Ember Data 发布多个模型吗?

标签 ember.js ember-data

因此,假设您有一个用户模型,该模型设置为相当标准的 API。在前端,您有一个 Ember 项目,该项目也具有该 User 模型。正常的创建调用类似于以下内容:

store.createRecord('user', {email: 'test@gmail.com'}).save();

这会将 POST 请求发送到类似 /api/users 的内容。 .然而,相当广泛的 API 支持是一次创建多个模型。例如,不是 POST 调用,而是在 user: {email: 'test@gmail.com'} 下发送单个对象。它会发送一个对象数组,如 users: [{email: 'test@gmail.com'}, {email: 'test2@gmail.com'}, ...] .

我在 ember 中看到的处理方式是在运行时进行多次创建调用。但是,这是非常低效的,我想知道 Ember 是否支持同时保存多个模型?你将如何在 Ember 中实现这一目标?

最佳答案

您无法按照您的描述在单个 POST 请求 Ember Data 中保存模型数组,但是有一种方法。

您可以保存一个父模型 hasMany 'user'EmbeddedRecordsMixin ,这将包括关系 ID 或完整记录。你的序列化器看起来像 -

import DS from 'ember-data';

export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
  attrs: {
    users: { embedded: 'always' },
  }
});

根据您的用例,仅为此目的创建父模型可能是有意义的,hasMany 'user' .如果您想使用现有模型并且不总是想嵌入其用户记录,则有一个答案 here .

如果您决定单独保存模型,您应该执行 users.invoke('save') ,这将触发每个模型的 POST。

关于ember.js - 我可以使用 Ember Data 发布多个模型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33616157/

相关文章:

ruby-on-rails - ember.js 从路由器中的 ember-data 查询中实例化第一条记录

spring-mvc - Emberjs 无法正确接受来自 spring mvc 的数组

ember.js - 从 hasMany 关系中删除 child

javascript - emberjs didRender 不工作

javascript - 在 ember.js 中构建一个极其简单的身份验证系统

javascript - 在 Ember 中返回模型属性的 promise

ruby-on-rails - ActiveModel Serializer 发送所有记录而不是指定的有限数量

ember.js - Socket.IO 与 Ember 和 Ember-Data

ember.js - 如何将数据从路由发送到组件?

ember.js - Emberjs + Rails - 类型错误 : Cannot call method 'hasOwnProperty' of undefined (Unable to POST to Rails DB)