0

我有两个不同的模型,它们之间有 hasMany/belongsTo 关系。通过 Emberfire订购请求的常规职位(如本例中的name)很容易。但我无法弄清楚如何处理关系
在路线的模板上,我们在路线中有 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 })
});
4

1 回答 1

0

当您访问异步属性时,您只是在访问与该关系关联的实体,而不是执行搜索(因此,至少在不滚动您自己的解决方案的情况下,无法在获取时过滤这些实体)。

处理此问题的最简单方法是在您的控制器/类上拥有一个计算属性,该属性按天对子模型进行排序。

另一种选择(如果您希望 Emberfire 为您处理排序)是不依赖延迟加载,而是直接查询子模型并按该查询中的日期字段排序。

-- 例如编辑 --

您希望查看所选模型的 model2 属性的更改,如下所示:

sortedList: Ember.computed('selectedModel.model2.[]', function() {
    return this.get('selectedModel.model2').sortBy('day');
}
于 2015-12-15T09:05:30.437 回答