我可以使用Ember Data发布多个模型吗?

Sha*_*rey 6 ember.js ember-data

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

store.createRecord('user', {email: 'test@gmail.com'}).save();
Run Code Online (Sandbox Code Playgroud)

这会发送一个POST请求/api/users.但是,相当广泛的API支持是同时创建多个模型.因此,例如,代替POST调用只是在user: {email: 'test@gmail.com'}其下发送一个对象将发送一个对象数组,如users: [{email: 'test@gmail.com'}, {email: 'test2@gmail.com'}, ...].

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

Ped*_*Rio 0

如果您具体询问 Ember Data,我不知道有什么方法可以做到这一点(我认为不可能在集合/数组上使用 save() 的任何等效项)。可能有其他可行的数据库(例如你可以检查Orbit.JS - 这是我还没有做过的事情)

我的做法是在后端有一个自定义端点,该端点接收特定的 JSON 负载并创建资源。您可以通过发出常规的 ajax 调用来完成此操作,请参阅此示例(来自我的项目)。

let content = //get content that you want to post
let accessToken = this.get('session.session.authenticated.token');
Ember.$.ajax({
    data: JSON.stringify(content),
    dataType: 'json',
    method: 'POST',
    url: 'path/to/my/custom/end/point',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Beader ${accessToken}`
    }
  }).then((result) => {
    // Code for success
  }, (jqXHR) => {
    // Code for error
  }).always(() => {
    // Code for always/finally
  });
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这都是自定义代码,没有利用 Ember 数据存储或模型。到目前为止我还没有找到更好的答案。

编辑:看到安多罗夫的答案后。我忘了提一件事。我正在使用 Ember Data 2.0(默认为 JSONAPI),并且EmbeddedRecordsMixin 不适用于JSON API