Ember数据-过滤hasMany关系的对象

Ember-Data - Filter Objects of a hasMany relationship

本文关键字:关系 对象 hasMany 过滤 数据 Ember      更新时间:2023-09-26

Ember 1.7Ember Data 1.0.9测试版夹具适配器Yo Ember生成器

我有一个用户模型和一个星期模型。每个用户有x周,一周有1个用户。(这是一个值日名册应用程序)。

我有一个周概览,向所有用户显示每个用户当前选择的日历周。因此,我必须只选择每个用户的选定周。如果他还没有一个日历周,我必须创建一个空的。

问题是:我如何过滤路由器、型号或控制器中的关系,以便只获得当前需要的一周?我认为问题是,我没有以正确的方式使用filter或filterBy函数。

用户模型

BuchixDienstplan.User = DS.Model.extend({
    name: DS.attr('string'),
    weeks: DS.hasMany('week', {async:true}),
    phone: DS.attr('string'),
    handy: DS.attr('string'),
    mail: DS.attr('string')
});

周模型

BuchixDienstplan.Week = DS.Model.extend({
    kwyear: DS.attr('number'),
    mo: DS.attr('string'),
    di: DS.attr('string'),
    mi: DS.attr('string'),
    do: DS.attr('string'),
    fr: DS.attr('string'),
    sa: DS.attr('string'),
    so: DS.attr('string'),
    user: DS.belongsTo('user')
});

用户路线

BuchixDienstplan.UsersRoute = Ember.Route.extend({
    model: function(params) {
        users = this.store.filter('user')
        return users
    }
});

在前端,用户可以选择显示哪一周。我显示所有用户的列表以及所选配置的周数。对于每个用户,我只需要一个特殊的星期(例如,2014年的日历周1,千瓦年=12014)那么我该如何过滤用户模型的关系呢?

答案是

Ember.computed.filterBy

http://emberjs.com/api/#method_computed_filterBy