5

私はオブジェクトの配列を持っています...

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

しかし、代わりに彼らはいたるところにいます。私は何を間違っていますか?

ありがとう!

4

6 に答える 6

9

-ageのように一重引用符で囲んでみてください。'-age'

于 2014-06-13T19:55:08.340 に答える
7

JS で文字列を数値に変換する必要はありません。

フィルターを使用して純粋な Angular で作成します。

| | orderBy:'-1*age'`

于 2016-05-16T14:06:16.837 に答える
1

この男を試してみてください.....

ng-repeat="userObjects のユーザー | orderBy:'age'">

于 2014-06-16T11:13:26.197 に答える
0

昇順:-

<div ng-repeat="person in persons | orderBy:'age'">

降順:-

<div ng-repeat="person in persons | orderBy:'-age'">
于 2016-03-25T10:43:45.997 に答える
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>

于 2017-07-27T11:45:10.520 に答える