js:加载与该对象相关的一组对象

Ember.js: Loading a set of objects related to this object

本文关键字:对象 一组 加载 js      更新时间:2023-09-26

(使用Ember-Data和RESTAdapter/RESTSerializer)

假设我有两个模型,PostComments,其中PostComments。我想能够做一个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