因此,假设您有一个用户模型,该模型设置为相当标准的 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/