(使用Ember-Data和RESTAdapter / RESTSerializer)
假设我有两个模型,Post
和Comments
,其中Post
有Comments
。我希望能够在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
端点。
答案 0 :(得分:0)
试图单独加载资源,但在Ember中很难使其工作。现在我使用sideloading,如下所示:http://jsbin.com/OxIDiVU/386/edit
您可以在此处详细了解辅助加载关系:http://emberjs.com/guides/models/the-rest-adapter/#toc_sideloaded-relationships