Ember.js:加载一组与此对象相关的对象

时间:2014-05-15 20:54:42

标签: javascript ember.js ember-data

(使用Ember-Data和RESTAdapter / RESTSerializer)

假设我有两个模型,PostComments,其中PostComments。我希望能够在Post上做find,并让它自动获取属于它的评论。但是,我的API 返回评论以及帖子,它只返回帖子数据(在这个例子中,只是'名字'...所以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 })
});

当我将comments数组输出到模板中时,它返回<DS.PromiseArray:ember###>,如果我在console.log中,则返回看起来像promise对象的内容。但是,查看Chrome开发工具中的“网络”标签,未进行API调用以获取与comment关联的Post

感谢任何帮助。

编辑:以下是一个示例JSBin,它显示了我遇到的问题: http://emberjs.jsbin.com/yocunalo/5/edit

正如您所看到的,用于获取注释的API调用永远不会发生。当我尝试显示数组时,它给了我一个Promise对象字符串,当我尝试迭代它时,没有任何值。查看控制台日志,根本没有任何尝试GET到comment端点。

1 个答案:

答案 0 :(得分:0)

试图单独加载资源,但在Ember中很难使其工作。现在我使用sideloading,如下所示:http://jsbin.com/OxIDiVU/386/edit

您可以在此处详细了解辅助加载关系:http://emberjs.com/guides/models/the-rest-adapter/#toc_sideloaded-relationships