Angular ng repeat orderBy工作不正常



我在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"

等等。

最新更新