我和Angular一起工作很多,目前必须要有严重的脑屁,但似乎无法获得一个简单的命令才能正常工作。我有一组数字,我想通过ng-repeat显示按顺序排序。
我的数据:
$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>
奇怪的是,即使把一个不好的参数放入也不会产生任何影响。没有错误或nuthin&#39;!
<div ng-repeat="split in data | orderBy:errorPlease">{{split}}</div>
Every.Single.Time。该列表显示为&#34; 200,243,190
我有JSFiddle显示我的问题。 Angular 1.2.1
答案 0 :(得分:3)
应该将数字转换为字符串并按其排序。
<div ng-repeat="split in data | orderBy:'toString()'">{{split}}</div>
link:http://jsfiddle.net/HB7LU/8111/
更新
以上是字符串排序,因此如果您有不同长度的数字,它将无法正确排序。
答案 1 :(得分:1)
显然是this is a bug in Angular and has been resolved as of 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>
中试用
答案 2 :(得分:0)
您必须将数字转换为字符串,并确保它们有一定的长度。
ie. "001", "023", "200"
等