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