У меня есть эти данные:
[{"id":"42","firstname":"Sarah","lastname":"Dilby","age":"40","cars":"Yaris"},
{"firstname":"Jason","lastname":"Diry","age":"5","id":"5"},
{"id":"6","firstname":"Bilson","lastname":"Berby","age":"1","cars":"Tipo"}]
Когда я заказываю по идентификатору или по возрасту в ng-repeat, он сортирует число как текст. Поскольку я нигде не могу найти написанного о том, что это проблема, я предполагаю, что проблема связана с моим кодом. Я создал эту скрипту: http://jsfiddle.net/vsbGH/1/ Извините за шаблон, но jsfiddle не t разрешить в поле html. Во всяком случае, это код, который загружает и сортирует данные:
//user data
app.service('People', function() {
var People = {};
People.details = [{"id":"42","firstname":"Sarah","lastname":"Dilby","age":"40","cars":"Yaris"},
{"firstname":"Jason","lastname":"Diry","age":"5","id":"5"},
{"id":"6","firstname":"Bilson","lastname":"Berby","age":"1","cars":"Tipo"}]
return People;
});
//list ctrl
controllers.listCtrl = function ($scope,People) {
$scope.people = People.details;
$scope.sortList = function(sortname) {
$scope.sorter = sortname;
}
}
И это часть шаблона ng-repeat:
<tr ng-repeat="person in people | orderBy:sorter ">
<td>{{person.id | number}}</td>
<td>{{person.firstname}} </td>
<td>{{person.lastname}} </td>
<td>{{person.age | number}}</td>
<td>{{person.cars}} </td>
</tr>
Большое спасибо, если вы можете помочь мне понять, почему числовые данные не сортируются как числа, а почему они сортируются как текст.