3

我有两张桌子,一张是帖子,另一张是评论。我有一个只有帖子列表的页面,如果它包含评论,我需要显示一个帖子图标。

App.Comment = DS.Model.extend({
    user_name: DS.attr('string'),
    user_id: DS.attr('number'),
    comment: DS.attr('string')
});

App.Post = DS.Model.extend({
    user_id: DS.attr('number'),
    comments: DS.hasMany('App.Comment',{embedded:true}),

这是一个示例车把

1. testpost     <show icon only if comment not empty>
4

1 回答 1

0

要实现这一点,您可以创建一个computed property监听您的 comments 属性(如果它至少具有firstObject集合),这意味着有评论,如下所示:

App.Post = DS.Model.extend({
  user_id: DS.attr('number'),
  comments: DS.hasMany('App.Comment',{embedded:true}),
  hasComments: function() {
    var commentsLength = this.get('comments.length');
    return (commentsLength > 0);
  }.property('comments.firstObject')
});

然后在你的模板中添加一个if助手来监听hasComments计算的属性,if如果post.hasComments返回 true,这将显示助手之间的内容,这将是(commentsLength > 0)评估为true

1. testpost {{#if post.hasComments}}<show icon>{{/if}}

编辑

请参阅此处以获取有效的演示

希望能帮助到你。

于 2013-08-04T17:44:26.097 回答