如何在计算的`desc`中对数组值进行排序?
How to sort an array values in `desc` in computed?
我有一个模型值,当我进行每次迭代时它工作正常。
<ul>
<li>See here : </li>
{{#each selectedCreditCard.balances.tenures as |balance|}}
<li>Balances is : {{balance}}</li>
{{/each}}
</ul>
但我需要按 desc
方式对值进行排序。所以我使用 computed
方法来做 desc
数组。
sortTenuresBy:['desc'],
sortedTenures: Ember.computed.sort('selectedCreditCard.balances.tenures', 'sortTenuresBy'),
maxTenure:Ember.computed(function(){
return this.get('sortedTenures').get('firstObject');
但是出现这样的错误:
Assertion Failed: When using @each to observe the array 3,8,12,24, the array must return an object
如何解决这个问题?请帮助我
如果您查看 API 对 Ember.computed.sort
的定义;它需要一个 属性 键(在你的例子中是 selectedCreditCard.balances.tenures
)和一个排序定义(在你的例子中是 sortTenuresBy
)。但是,如果您查看提供的示例;排序定义必须是普通的 属性 名称或 属性 名称后跟排序类型,例如 name:desc
或 key:asc
等等。总之;在您的情况下,不可能将 Ember.computed.sort
用于普通数组。我承认 API 文档含糊不清。
针对您的情况;您必须将计算的 属性 编写为函数;我想这是你不想要的;因为这是常见的方式;或者您可以使用以下 addon。 ember-awesome-macros
的优点在于您可以嵌套提供的计算宏。
如果您查看 API 寻找 array.sort
;它说 "combines the functionality of both Array.prototype.sort() and Ember.computed.sort"。因此我们可以使用这个。您希望数组按降序排序;我想像下面这样
sortTenuresBy: array.reverse(array.sort('selectedCreditCard.balances.tenures'))
应该可以。
我有一个模型值,当我进行每次迭代时它工作正常。
<ul>
<li>See here : </li>
{{#each selectedCreditCard.balances.tenures as |balance|}}
<li>Balances is : {{balance}}</li>
{{/each}}
</ul>
但我需要按 desc
方式对值进行排序。所以我使用 computed
方法来做 desc
数组。
sortTenuresBy:['desc'],
sortedTenures: Ember.computed.sort('selectedCreditCard.balances.tenures', 'sortTenuresBy'),
maxTenure:Ember.computed(function(){
return this.get('sortedTenures').get('firstObject');
但是出现这样的错误:
Assertion Failed: When using @each to observe the array 3,8,12,24, the array must return an object
如何解决这个问题?请帮助我
如果您查看 API 对 Ember.computed.sort
的定义;它需要一个 属性 键(在你的例子中是 selectedCreditCard.balances.tenures
)和一个排序定义(在你的例子中是 sortTenuresBy
)。但是,如果您查看提供的示例;排序定义必须是普通的 属性 名称或 属性 名称后跟排序类型,例如 name:desc
或 key:asc
等等。总之;在您的情况下,不可能将 Ember.computed.sort
用于普通数组。我承认 API 文档含糊不清。
针对您的情况;您必须将计算的 属性 编写为函数;我想这是你不想要的;因为这是常见的方式;或者您可以使用以下 addon。 ember-awesome-macros
的优点在于您可以嵌套提供的计算宏。
如果您查看 API 寻找 array.sort
;它说 "combines the functionality of both Array.prototype.sort() and Ember.computed.sort"。因此我们可以使用这个。您希望数组按降序排序;我想像下面这样
sortTenuresBy: array.reverse(array.sort('selectedCreditCard.balances.tenures'))
应该可以。