我在桌面上运行angularjs过滤器排序,
当我得到等于数字'n / a'的值时,例如排序不正确
字符串应小于数字我希望订单为n / a,0,1,2,5,1
但顺序为0,1,2,5,100,n / a不正确,
我还附上图片和分类代码,
如果您有任何想法如何解决,请
感谢。
的示例链接http://jsfiddle.net/liad/3cunf/
示例代码为:
<div ng-click="orderByField='rating'; reverseSort = !reverseSort">
答案 0 :(得分:0)
这解决了我的问题
/*
orderObjectBy - netural filter of string and numbers
*/
.filter('orderObjectBy', [function() {
return function(items, field, reverse) {
var filtered = [];
angular.forEach(items, function(item) {
filtered.push(item);
});
filtered.sort(function (a, b) {
var result = (a[field] - b[field]);
if (isNaN(result)) {
if (a[field] == 'n/a' && b[field] != 'n/a')
{
return -1;
}
else if (a[field] != 'n/a' && b[field] == 'n/a')
{
return 1;
}
else
{
return 0;
}
}
return result;
});
if(reverse) filtered.reverse();
return filtered;
};
}]