2016-11-16 75 views

回答

1

可以考慮generateIdForRecord

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

如果要在 客戶端上生成您的記錄的全球唯一的ID,實現generateIdForRecord()方法。每次創建新記錄時,都會調用此方法 ,並且從中返回 的值將分配給記錄的primaryKey。

大多數傳統的類似REST的HTTP API不會使用這種方法。 相反,記錄的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(); 
    } 
}); 
+0

是的,這很可能是解決方案。請注意,ember-data的默認行爲不是要生成id。如果您希望生成客戶端ID,則必須按照@kumkanillam在這裏所述的那樣實施它 – Casey

+0

感謝您的解決方案:) –