我有一个值函数,它传递给我的orderBy:
function getValue(item){
return [parseInt(item.approx_value_usd) || -1];
}
这肯定总是返回数字数组,但由于某些原因,前端AngularJS总是按照属性的词典顺序对我的项目进行排序' approx_value_usd' e.g。
88> 82> 8> 53(错!)
我觉得我错过了一些东西,但似乎无法解决这个问题。
答案 0 :(得分:2)
" order-by"的返回值使用简单的比较检查功能。您的代码返回一个数组,而不仅仅是一个数字。当数组出现在JavaScript >
或<
比较中时,它会被转换为字符串。这是通过获取数组中每个元素的 string 值并加入它们来完成的。
因此,即使您在数组中放入数字,当Angular实际使用返回的值时,它最终仍然是一个字符串。如果你删除[ ]
它应该有用。