我已经使用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();
}
});