js:加载与该对象相关的一组对象
Ember.js: Loading a set of objects related to this object
(使用Ember-Data和RESTAdapter/RESTSerializer)
假设我有两个模型,Post
和Comments
,其中Post
有Comments
。我想能够做一个find
后,并有它自动获取属于它的评论。然而,我的API不与Post一起返回评论,它只会返回Post数据(在这个例子中,只是'name'…所以comments
不在服务器返回的JSON中)。
这就是我正在做的:
App.Post = DS.Model.extend({
name: DS.attr('string'),
comments: DS.hasMany('comment', { async: true, inverse: 'post' })
});
App.Comment = DS.Model.extend({
text: DS.attr('string'),
post: DS.belongsTo('post', { async: true })
});
当我将注释数组输出到模板中时,它返回<DS.PromiseArray:ember###>
,如果我console.log它,它返回一个看起来像承诺对象的东西。然而,看看Chrome开发工具中的网络选项卡,没有API调用来获取与Post
相关的comment
。
任何帮助都是感激的。
EDIT:这是一个示例JSBin,显示了我遇到的问题:http://emberjs.jsbin.com/yocunalo/5/edit
如您所见,获取评论的API调用从未发生。当我尝试显示数组时,它给了我一个Promise对象字符串,当我尝试迭代它时,没有值在那里。查看控制台日志,根本没有尝试到comment
端点的GET操作。
尝试单独加载资源,但在Ember中很难使其工作。现在我使用侧加载,如下所示:http://jsbin.com/OxIDiVU/386/edit
您可以在这里阅读更多关于侧加载关系的信息:http://emberjs.com/guides/models/the-rest-adapter/#toc_sideloaded-relationships
相关文章:
- 如何从对象数组中获取最后一项
- 对象数组-与其他列数据相比,增加一列
- 处理对象数组并将它们以 4 个为一组进行分配
- 使一组对象与 jQuery 一起拖动
- 将json的每个对象的一组值推送到不同的数组中
- 旋转一组对象,同时保持其方向不变
- 如何使用用户定义的相等函数在Javascript中创建一组用户定义的对象
- 正在将嵌套的对象数组值获取到另一个数组中
- 用javascript将一个对象数组复制到另一个数组中(深度复制)
- 在JavaScript中,从一组数组递归地构建一个字典/嵌套对象
- LoDash:从一组对象属性中获取一组值
- 寻找一种在javascript中对对象数组进行排序的方法
- 从一组数据或数组创建对象
- 在Javascript中,有没有一种方法可以用一个语句创建一个索引对象数组
- 打字稿函数接受一个或一组对象
- 在 Knockout.js 订阅的帮助下对一组对象进行动画处理
- 如何遍历一组值对 JSON 对象
- 根据另一个数组对对象数组进行排序
- 三个中是否有容器类型对象.js来转换一组子对象
- 在页面加载后淡出对象一段时间,然后在淡出后运行另一组代码