使用一个API调用检索ember数据关系
Retrieve ember data relationship with one API call
我有两个模型:
票:
export default DS.Model.extend({
name: DS.attr('string'),
email: DS.attr('string'),
messages: DS.hasMany('message'),
})
消息:
export default DS.Model.extend({
message: DS.attr('string'),
date: DS.attr('date'),
ticket: DS.belongsTo('ticket', { async: true }),
});
和使用这种模型方法的路由器:
model(params) {
return this.get('store').findRecord('ticket', params.id, {reload: true, include: 'messages'});
},
在页面重新加载时,只调用tickets/:id
,但有时会调用messages/:id
。为什么不使用包含的数据并尝试从服务器检索?
我已经尝试了async: false
上的hasMany关系,但我有这个错误:
Error: Assertion Failed: You looked up the 'messages' relationship on a 'ticket' with id 15 but some of the associated records were not loaded. Either make sure they are all loaded together with the parent record, or specify that the relationship is async (`DS.hasMany({ async: true })`)
任何想法?
这是GET tickets/:id
响应:
{"data":
{
"id":"15",
"type":"tickets",
"attributes":{...},
"relationships":{"messages":{"data":[{"id":"1478482584658","type":"messages"},{"id":"1478482588516","type":"messages"},{"id":"1478517720","type":"messages"},{"id":"1478517813","type":"messages"},{"id":"1478517893","type":"messages"},{"id":"1478530030","type":"messages"},{"id":"1478530032","type":"messages"},{"id":"1478533446","type":"messages"}]}}},
"included":[
{"id":"1478482584658","type":"messages","attributes":{...}},{"id":"1478482588516","type":"messages","attributes":{...}},
...
}
}
]
}
为什么不从included
获取数据并对服务器进行其他调用?
承诺呢?
在处理关系时,重要的是要记住它们返回承诺。https://guides.emberjs.com/v2.1.0/models/working-with-relationships/toc_relationships-as-promises
相关文章:
- *简单*解析云代码查询失败”;TypeError:无法调用方法'获取'未定义的“检索该信息”;
- 调用c#函数从传递javascript变量的javascript中检索数据
- 在用户提交表单后显示数据(从API调用检索),而不刷新页面
- 从api调用中检索to ng选项的值
- 无法从 ajax 调用中检索谷歌地图标记坐标
- 防止单击和检索函数调用的参数
- 从Flash AS3 Android应用程序调用Java脚本函数以检索设备ID和序列号
- 对从字典 JavaScript 对象检索的对象调用方法
- 从调用函数中检索回调值.如何
- 使用两个 Ajax 调用来发布然后检索数据
- 在颜色框调用时检索隐藏字段值
- 客户端 JavaScript 和/或 JavaScript 代码,使用 jquery 调用 WCF 服务检索 Syste
- 如何检索 java 设置并迭代来自 ajax 调用响应的值
- 当从客户端从ajax调用检索时,我在服务器上的日期时间增加了12.30小时
- Ajax调用工作正常,但php文件在从对象检索属性时出错
- 在Phonegap中的AJAX REST服务调用期间未正确检索值
- 在用户返回页面后,显示AJAX调用检索到的相同数据
- 如何将一些指定的时间设置为ajax调用,这样如果请求正在花费时间检索数据,它应该来到FAIL块
- 如何使用JQueryAjax调用从web方法发送和检索数据
- 如何对从CouchDB检索到的文档调用函数