orderBy工作不正常

orderBy not working properly

本文关键字:不正常 工作 orderBy      更新时间:2023-09-26

我创建了3个组-优先级1、2和3,并使用orderBy:优先级,期望每个推送的任务都进入它们的组。但在我用更多的数据进行测试后,我发现每个小组都有奇怪的行为,他们没有正确分类。

<input ng-model="taskName"/>
  <button ng-click="AddTask()">Push task</button>
    <li ng-repeat="task in tasks | orderBy:'priorty'">priorty {{task.priorty}} - {{task.taskName}}</li>

新的项目不是被推到底部,而是有时被推到顶部/中间,为什么会发生这种情况?

试试我的演示:http://plnkr.co/edit/V5aIZcLbhiSfLy1vEWoe?p=preview

项目始终按照priority的正确顺序排列
除此之外,对同一优先权内的物品顺序没有要求(也没有保证(。

如果想要进行第二级排序,可以将属性列表传递给orderBy过滤器:

ng-repeat="task in tasks | orderBy:['priorty','taksName']"

另请参阅简短演示


关于您问题的"为什么">
(如果您只按"优先级"订购,为什么会重新订购(:

它似乎是特定于浏览器的。Firefox上的相同代码在插入第9个项目后不会对项目进行"重新排序"(Chrome也是如此(。

如果我进行猜测,我会说这与每个浏览器(内部(保留对元素的引用的方式有关,以及在这一点上他们决定进行一些重新哈希。