2014-10-05 67 views
0

我有一个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('[email protected]') 
}); 

而且在证书模板

{{currentIssuance.start}} 

我什么也没得到。

回答

0

@ Kingpin2k的回答让我走错了路。我可以使用firstObject财产发行的排序阵列上,因此,而不是试图计算currentIssuance我可以排序:

sortedIssuances: function(){ 
    return this.get('issuances').sortBy('start'); 
}.property('[email protected]'), 

而且在模板刚刚得到的第一个对象。

{{sortedIssuances.firstObject.start}} 
1

你的回报是异步发生的,所以它真的返回undefined,因为你不返回任何东西。只需使用firstObject即可。

{{issuances.firstObject.start}} 
+0

并没有解决我得到的最新发行 – Weston 2014-10-05 21:25:10

+1

它解决你的问题的问题“我如何返回一个模型关联数组的一个成员?” – Kingpin2k 2014-10-05 21:56:43