Angular ng-repeat orderBy无法正常工作

时间:2014-11-10 18:03:22

标签: angularjs angularjs-ng-repeat

我和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

3 个答案:

答案 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>

JSfiddle

中试用

答案 2 :(得分:0)

您必须将数字转换为字符串,并确保它们有一定的长度。

ie.     "001", "023", "200"

相关问题