在模型中按类别过滤每个 - ember.js

时间:2014-12-08 21:33:29

标签: javascript ember.js

根据标题 - 我如何能够实现这一目标?

所以我有models/project

export default DS.Model.extend({
    title: DS.attr('string'),
    description: DS.attr('string'),
    image: DS.attr('string'),

    category: DS.attr('string')  
});

我希望按projects/index.hbs

中的类别字符串过滤项目
{{#each project in model}}
    <h3>{{project.title}}</h3>
    <p>{{project.description}}</p>
{{/each}}

...

{{#each project in model}}
    <h3>{{project.title}}</h3>
    <p>{{project.description}}</p>
{{/each}}

例如,某些项目的类别 web ,其他项目的徽标

在第一个{{#each}}循环中,我想在第二个中显示网络类别和徽标

我应该由控制器来做吗?还是在路线上? PS。该怎么做才能使它显示为默认值,而不是点击制作action: sortBy等。我真的尝试自己找到答案,但还没有找到答案..

1 个答案:

答案 0 :(得分:2)

您可以将computed property添加到控制器,按类别过滤您的项目。

  webCategoryProjects: function() {
    return this.get('model').filterBy('category', 'web');
  }.property('model.@each.category'),

  logoCategoryProjects: function() {
    return this.get('model').filterBy('category', 'logo');
  }.property('model.@each.category'),

{{#each project in webCategoryProjects}}
    <h3>{{project.title}}</h3>
    <p>{{project.description}}</p>
{{/each}}

...

{{#each project in logoCategoryProjects}}
    <h3>{{project.title}}</h3>
    <p>{{project.description}}</p>
{{/each}}