OrderBy在Chrome中的排序方式与其他浏览器不同

dev*_*ebz 6 javascript sorting google-chrome angularjs

我注意到Chrome中的orderBy没有像在其他浏览器中那样排序.

我正在为Angular 1.3中的一个项目写作.

Chrome排序: 铬

IE 10排序: 在此输入图像描述

关于特定浏览器没有特殊逻辑,两个阵列完全相同.

谓词是明确定义的:

$scope.predicate = 'style';
$scope.reverse = true;
Run Code Online (Sandbox Code Playgroud)

我的ng-repeat看起来像这样:

<tr ng-repeat="line in model.resultList | orderBy:predicate:reverse">
Run Code Online (Sandbox Code Playgroud)

我的代码没什么特别或不同.然而,'尺寸'是字符串(例如尺寸:'8-',......,尺寸:'6',......).为什么Chrome上的排序与其他浏览器完全不同?

我的所有结果都是从后端按照样式#的组排序,然后是升序大小.当在Angular上设置主要排序时,在这种情况下为"样式",Chrome会混合已经排序的大小.请参阅下面的Plnk(在Chrome和IE/FireFox中打开以查看差异)

http://plnkr.co/edit/6TO8pZZ8jZ8Tytw6wHpQ?p=preview

And*_*rey 5

没有什么不对。由于您要按其他字段排序-大小可以任何方式改组。orderBy依靠浏览器的内置排序功能()。浏览器的实现可能有所不同。并且排序不应该是稳定的(MDNES2015标准部分)。

如果要实现一致的行为,请使用按多个字段排序。喜欢

orderBy:[predicate, 'size']:reverse
Run Code Online (Sandbox Code Playgroud)