我可能从根本上误解了如何在Ember / ember-model中使用hasMany关系。
ember-model自述文件包含以下示例
postJson = {
id: 99,
title: 'Post Title',
body: 'Post Body',
comments: [
{
id: 1,
body: 'comment body one',
},
{
id: 2,
body: 'comment body two'
}
]
};
App.Post = Ember.Model.extend({
id: Ember.attr(),
title: Ember.attr(),
body: Ember.attr(),
comments: Ember.hasMany('App.Comment', {key: 'comments', embedded: true})
});
App.Comment = Ember.Model.extend({
id: Ember.attr(),
body: Ember.attr()
});
据推测,人们会做以下事情
post = App.Post.create();
post.load(1, postJson);
鉴于上述情况,现在我们可以通过get(即post
)访问各种post.get('title')
道具,但是如何访问评论?
post.get('comments')
返回一个对象,但它不是App.Comment对象的集合,这正是我所期望的。
提前感谢您提供任何帮助。
答案 0 :(得分:1)
它返回一个可迭代的集合对象,但不是数组。我正在用你的代码编写一个例子,我会暂时发布它(我很确定load是一个私有方法,你应该在模型定义上使用load,然后找到)。
App.Post.load(postJson); //sideloading
return App.Post.find(99);