我有一系列对象......
var userObjects =[
{userName: bob,
age: "25",
gender: "m"
},
{userName: bill,
age: "15",
gender: "m"
},
{userName: jen,
age: "45",
gender: "f"
},
]
现在我的HTML中有一个ng-repeat来迭代这个对象数组。我希望它按年龄排序:
<tr ng-repeat="user in userObjects | orderBy:-age">
在我的JS中,我将我的年龄转换为汉堡......
data.forEach(function(user){
user.age= parseFloat(user.age);
}
Angular不会按年龄排序,我希望看到......
bill, 15
bob, 25
jen, 45
但相反,他们到处都是。我做错了什么?
谢谢!
答案 0 :(得分:9)
尝试将-age
包装在单引号中,例如'-age'
答案 1 :(得分:6)
无需在JS中将字符串转换为数字。
使用过滤器以纯角度制作:
| ORDERBY:&#39; -1 *年龄&#39;`
答案 2 :(得分:5)
以下将转换&#39;年龄&#39;进入数字并按升序排序。
| orderBy : 'age/1'
答案 3 :(得分:1)
试试这个家伙......
ng-repeat =“userObjects中的用户| orderBy:'age'”&gt;
答案 4 :(得分:0)
升序: -
<div ng-repeat="person in persons | orderBy:'age'">
降序: -
<div ng-repeat="person in persons | orderBy:'-age'">
答案 5 :(得分:0)
angular.module('myApp', []).controller('namesCtrl', function($scope) {
$scope.names = [
{name:'Jani',age:'18'},
{name:'Carl',age:'32'},
{name:'Margareth',age:'21'},
{name:'Hege',age:'14'},
{name:'Joe',age:'36'},
{name:'Gustav',age:'42'},
{name:'Birgit',age:'28'},
{name:'Mary',age:'58'},
{name:'Kai',age:'26'}
];
});
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="namesCtrl">
<p>Looping with objects:</p>
<ul>
<li ng-repeat="x in names | orderBy:'age'">
{{ x.name + '-' + x.age }}
</li>
</ul>
</div>
</body>
</html>