我们正在开发一个消息系统,该系统将允许用户向许多社交媒体帐户提交消息,这将导致每个帐户都有帖子。在我们的应用程序中,我们有帐户、消息和帖子。消息是我的内容的单个实例,然后可以作为帖子发送。
帐户可以有许多消息。
消息可以绑定到多个帐户。消息可以有多个帖子。
帖子属于消息。
我们像这样对数据进行建模:
Social.Account = DS.Model.extend({
username: DS.attr('string'),
messages: DS.hasMany('Social.Message')
});
Social.Message = DS.Model.extend({
user_id: DS.attr('number'),
text: DS.attr('string'),
accounts: DS.hasMany('Social.Account'),
posts: DS.hasMany('Social.Post')
});
Social.Post = DS.Model.extend({
created: DS.attr('date'),
text: DS.attr('string'),
message: DS.belongsTo('Social.Message')
});
和 FIXTURE 数据看起来像这样:
Social.Account.FIXTURES = [{
id: 1,
username: "commadelimited",
messages: [1, 2]
}];
Social.Message.FIXTURES = [{
id: 1,
user_id: 1,
text: 'This is message #1 sent by account #1',
accounts: [1],
posts: [1]
}, {
id: 2,
user_id: 1,
text: 'This is message #2 sent by account #1',
accounts: [1],
posts: [2]
}];
Social.Post.FIXTURES = [{
id: 1,
created: "5 minutes ago",
text: 'This is post #1 sent by account #1, tied to message #1'
}, {
id: 1,
created: "5 minutes ago",
text: 'This is post #2 sent by account #1, tied to message #2'
}];
即使在我们的系统中,消息可能会导致人工帖子,但就 UI 而言,消息是一对一的关系。
当我必须首先遍历 Message 开始时,我无法考虑如何输出结果 Post。此代码正确输出消息,但我需要输出帖子。
{{#each messages in messages}}
<article>
<time>{{post.ts}}</time>
<div class="post-content">
<h2>{{post.text}}</h2>
</div>
</article>
{{/each}}
我试过{{#each messages in messages.posts}}
了,没什么。在每个循环中,我在{{message}}
返回的循环中输出<Social.Message:ember391:1>
。我可以使用此语句在控制台中访问 Post 数据
Social.Account.find().objectAt(0).get('messages').objectAt(0).get('posts')
它返回正确类型的对象。
那么,如何获取每条消息的 Post 数组?