Sorting 如何在computed中对'desc'中的数组值进行排序?
我有一个模型值,当我进行每次迭代时,它工作得很好Sorting 如何在computed中对'desc'中的数组值进行排序?,sorting,ember.js,ember-data,Sorting,Ember.js,Ember Data,我有一个模型值,当我进行每次迭代时,它工作得很好 <ul> <li>See here : </li> {{#each selectedCreditCard.balances.tenures as |balance|}} <li>Balances is : {{balance}}</li> {{/each}} </ul> 但得到的错误如下所示: Assertion Failed: When u
<ul>
<li>See here : </li>
{{#each selectedCreditCard.balances.tenures as |balance|}}
<li>Balances is : {{balance}}</li>
{{/each}}
</ul>
但得到的错误如下所示:
Assertion Failed: When using @each to observe the array 3,8,12,24, the array must return an object
如何解决这个问题?如果您查看Ember.computed.sort的定义,请帮助我;它需要一个属性键(在您的情况下是selectedCreditCard.balances.tenures
)和一个排序定义(在您的情况下是sortTenuresBy
)。然而,如果你看看提供的例子;排序定义必须是普通属性名称或后跟排序类型的属性名称,如name:desc
或key:asc
等。总之,;在您的示例中,无法对普通数组使用Ember.computed.sort
。我承认API文档很模糊
为你的情况;您必须将计算属性作为函数写入;我想这是你不想要的;因为这是常见的方式;或者你也可以利用以下方法。ember awesome宏的好处在于您可以嵌套提供的计算宏
如果您查看的是数组.sort
;它说“结合了Array.prototype.sort()和Ember.computed.sort的功能”。所以我们可以用这个。您希望数组按降序排序;我想是这样的
sortTenuresBy: array.reverse(array.sort('selectedCreditCard.balances.tenures'))
应该有效。主要问题是我没有值的键。它只是一个像[1,2,3,4]这样的原始数组,如果您想获得max
,可以使用
sortTenuresBy: array.reverse(array.sort('selectedCreditCard.balances.tenures'))