我已经使用createRecord实例化了模型。现在如何在保存之前获取该记录的ID?

最佳答案

您可以考虑generateIdForRecord

http://emberjs.com/api/data/classes/DS.Adapter.html#method_generateIdForRecord


  如果您的记录的全局唯一ID应该在
  客户端,实现generateIdForRecord()方法。此方法将
  每次创建新记录时都会被调用,并且返回值
  它将被分配给记录的primaryKey。
  
  大多数传统的类似REST的HTTP API不会使用此方法。
  相反,记录的ID将由服务器设置,而您的
  适配器在调用时将使用新的ID更新商店
  didCreateRecord()。仅在您打算执行此方法时
  在客户端生成记录ID。


您甚至可以创建特定于模型的适配器,例如post模型,还可以创建post适配器并覆盖generateIdForRecord方法。

适配器/ post.js

import ApplicationAdapter from './application';
import DS from 'ember-data';
import { v4 } from 'uuid';

export default ApplicationAdapter.extend({
  generateIdForRecord: function(store, inputProperties) {
    return v4();
  }
});

09-25 17:44