【发布时间】:2016-09-08 11:18:09
【问题描述】:
我注意到 Chrome 中的 orderBy 与其他浏览器中的排序不同。
我正在为 Angular 1.3 中的一个项目写作。
对于特定的浏览器没有特殊的逻辑,两个数组完全一样。
谓词明确定义:
$scope.predicate = 'style';
$scope.reverse = true;
我的 ng-repeat 看起来像这样:
<tr ng-repeat="line in model.resultList | orderBy:predicate:reverse">
我的代码没有什么特别或不同的地方。然而,“大小”是字符串(例如,大小:“8-”,...,大小:“6”,...)。为什么这种排序在 Chrome 上与在其他所有浏览器上完全不同?
我所有的结果都是从后端按样式 # 分组排序的,然后按升序排列。当在 Angular 上设置主要排序时,在本例中为 Style,Chrome 正在混合已经排序的大小。请参阅下面的 Plnk(在 Chrome 和 IE/FireFox 中打开以查看差异)
【问题讨论】:
-
什么是样式属性?你能提供演示吗?不清楚什么是排序属性。
-
这是因为 chrome “速度很快”,因此不关心排序,而是进行一些改组,以便您知道 id 并没有完全忽略您的命令。
-
无法在此 example 中复制
-
您不必这样做——众所周知,Chrome (webkit) 并不真正支持排序,Fx (geckos) 几乎就在那里,但并不完全支持。唯一真正支持排序的浏览器是 MSIE。
-
我很困惑。我在您的数据中没有看到名为“样式”的属性,如果您将谓词更改为“大小”,它将按您的“大小”属性正确排序。
标签: javascript angularjs google-chrome sorting