2

我有一个价值函数,它被传递到我的 orderBy 中:

function getValue(item){
    return [parseInt(item.approx_value_usd) || -1];
}

这肯定总是返回一个数字数组,但由于某种原因,前端 AngularJS 总是按属性“approx_value_usd”的字典顺序排列我的项目,例如

88 > 82 > 8 > 53(错误!)

我觉得我错过了一些东西,但似乎无法解决这个问题。

4

1 回答 1

2

“order-by”函数的返回值使用简单的比较来检查。您的代码返回一个数组,而不仅仅是一个数字。当数组出现在 JavaScript><比较中时,它将被转换为字符串。这是通过获取数组中每个元素的字符串值并将它们连接起来来完成的。

因此,即使您将数字放入数组中,当 Angular 实际使用返回值时,它最终还是会成为一个字符串。如果你放弃[ ]它应该工作。

于 2015-04-05T21:12:39.100 回答