我正在处理一个缺陷,我将数字数据作为JSON对象获取,但在视图中它自动转换为字符串。因此,我无法对其进行排序。
例如,
data = [
{
num : "1"
},
{
num : "2"
},
{
num : "3"
},
{
num : "10"
},
{
num : "12"
},
{
num : "22"
}
]
所以当我用orderBy:num对它进行排序时,它给出了我的输出
1 10 12 2 22 3
由于Angular将其转换为字符串,但我想以适当的格式。请帮忙!!
答案 0 :(得分:0)
两种解决方案:
从JSON对象内的值中删除引号。
将每个值转换为整数或浮点数。
angular.forEach($scope.data, function (d) {
d.age = parseFloat(d.age);
});
答案 1 :(得分:0)
您可以编写自己的自定义排序函数将文本转换为整数,然后在视图中使用它进行排序。像这样:
<!-- in the view -->
<tr ng-repeat="item in items | orderBy:byNum">
// in the controller
$scope.byNum = function(item) {
return +item.num;
};
我建议你看看为什么JSON数据从数字转换为文本。这不是视图中应该发生的事情。