我在Angular上做了很多工作,现在肯定有严重的大脑问题,但似乎无法获得简单的orderBy来正常工作。我有一个数字数组,当通过ng重复显示时,我希望按顺序排序。
我的数据:
$scope.data = [200,243,190];
我的标记尝试:
<div ng-repeat="split in data | orderBy">{{split}}</div>
<div ng-repeat="split in data | orderBy:split">{{split}}</div>
<div ng-repeat="split in data | orderBy:'split'">{{split}}</div>
<div ng-repeat="split in data | orderBy:['split']">{{split}}</div>
奇怪的是,即使放入一个坏参数似乎也没有任何效果。没有错误或疯狂!
<div ng-repeat="split in data | orderBy:errorPlease">{{split}}</div>
Every.Single.Time.列表显示为"200、243、190
我有一个JSFiddle显示我的问题。Angular 1.2.1
应该将数字转换为字符串并进行排序。
<div ng-repeat="split in data | orderBy:'toString()'">{{split}}</div>
链接:http://jsfiddle.net/HB7LU/8111/
更新:
上面是字符串排序,所以如果您有不同长度的数字,它将不会正确排序。
显然,这是Angular中的一个错误,在Angular 1.3.0-rc.5中已经解决。将AngularJS库从1.2.1替换为1.3.0 RC5修复了该错误。
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-rc.5/angular.min.js"></script>
<!--<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script>-->
<body>
<div ng-controller="myCtrl">
<p ng-repeat="item in items | orderBy">{{item}}</p>
</div>
</body>
在我的JSfiddle 中尝试一下
您必须将数字转换为字符串,并确保它们具有一定的长度。
ie. "001", "023", "200"
等等。