是否可以使用Emberfire在Ember中订购hasMany相关数据?

时间:2015-12-14 16:07:05

标签: javascript ember.js emberfire

我有两种不同的模型,它们之间有hasMany / belongsTo关系。通过Emberfire订购请求常规位置(如本例中名称),这很容易。但我无法弄清楚如何用关系来做这件事 在路线的模板上,我们在路线中有Model1并在模型1上循环通过不同的位置。在内部,我们循环通过链接的模型2位置,但它们应该按日排序
模型1

export default DS.Model.extend({
  name : DS.attr('string'),
  model2 : DS.hasMany('model2', {async: true})
});

模型2

export default DS.Model.extend({
  day : DS.attr('number'),
  model1 : DS.belongsTo('model1', { async: true })
});

1 个答案:

答案 0 :(得分:0)

当你访问async属性时,你只是访问与该关系相关联的实体,而不是执行搜索(所以没有办法,至少在没有滚动你自己的解决方案的情况下,在获取时过滤这些实体)。

处理这个的最简单方法是在你的控制器/类上有一个计算属性,它按天命令子模型。

另一个选项(如果你想让Emberfire为你处理订单)就是不依赖于延迟加载,而是直接查询子模型并按该查询中的day字段排序。

- 编辑例如 -

您想要观察所选模型的model2属性的更改,如下所示:

sortedList: Ember.computed('selectedModel.model2.[]', function() {
    return this.get('selectedModel.model2').sortBy('day');
}