0
我有一個從REST API中獲取數據的路由。用戶第一次輸入時,不會保存任何數據,所以我需要使用一些默認值創建記錄。我想我需要在路徑中執行此操作,以便用戶可以看到我的默認值(在我的實際應用程序中它不僅爲空),而不是在save
操作期間創建。Ember:創建一個新記錄如果沒有找到
但是,如果數據庫中有數據,我需要返回該記錄。現在我被卡住了,一定不能做正確的事情(可能與承諾有關,但我不確定)。
我得到的錯誤是:
Error while processing route: project.dates Assertion Failed:
Expected an object as `data` in a call to `push` for [email protected]:project-date: ,
but was undefined
這裏是我的路線代碼:
var project = this.modelFor('project');
var projectDates = this.store.find('project-date', project.id);
if (projectDates) {
return projectDates;
} else {
return this.store.createRecord('project-date', {
project: project.id,
start: null,
checkpointA: null,
finish: null
};
}
令人費解的是,如果我只是否定我if
語句來得到其他的返回值(像這樣:if (!projectDates)
)然後我仍然得到上面的錯誤,但它也加載模型!我已經確認API(或我的模擬API)以正確的格式返回數據,作爲對象。
你不是應該使用查找和createRecord(「項目日期」,而不是單一化的型號名稱「項目日期」)? –
也許。我剛剛編輯。我從我的實際代碼中重新輸入了名稱,因爲這些名稱對其他人沒有意義。 – redOctober13
您的API是否以適當的JSON API格式返回數據?看起來你的調用是返回數據並且實際上導致錯誤,因爲應該在你的API響應根目錄下的'data'對象不存在 – Nazim