如何返回模型关联数组的单个成员?

时间:2014-10-05 20:19:48

标签: ember.js

我有一个hasMany关系,我想根据成员的属性值选择一个成员。

示例是证书有多个发行版,我想根据start属性获取最新版本。但即使我尝试仅返回关联中的第一项,我也无法在模板中显示任何内容。

App.IssuanceModel = DS.Model.extend({
 start: DS.attr(),
 end: DS.attr()
});

App.CertificateModel = DS.Model.extend({
  issuances: hasMany('issuance', {async: true}),

  currentIssuance: function(){
    this.get('issuances').then(function(issuances){
      return issuances.objectAt(0);
    });
  }.property('issuances.@each.start')
});

并在证书模板中

{{currentIssuance.start}}

我一无所获。

2 个答案:

答案 0 :(得分:1)

你的回归是异步发生的,所以它真的回归未定义,因为你没有返回任何东西。只需使用firstObject

{{issuances.firstObject.start}}

答案 1 :(得分:0)

@ Kingpin2k的回答让我走上了正确的道路。我可以在已排序的发布数组上使用firstObject属性,因此我不会尝试计算currentIssuance我可以排序:

sortedIssuances: function(){
  return this.get('issuances').sortBy('start');
}.property('issuances.@each.start'),

在模板中只获取第一个对象。

{{sortedIssuances.firstObject.start}}