我创建了3组 - 第1组和第3组并使用orderBy:priorty期望每个被推送的任务都将进入他们的组。但是,在我测试了更多数据之后,我发现每个组中都存在奇怪的行为,这些行为并没有正确排序。
<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>
新项目未被推到底部但有时到达顶部/中间,为什么会发生这种情况?
答案 0 :(得分:1)
根据priority
,项目始终处于正确的顺序
除此之外,对于相同优先级内的项目的顺序没有要求(也没有保证)。
如果想要进行第二级排序,可以将属性列表传递给orderBy
过滤器:
ng-repeat="task in tasks | orderBy:['priorty','taksName']"
另请参阅此 short demo 。
关于&#34;为什么&#34;你的问题
(如果您只按优先顺序排序,为什么会重新订购)
它似乎是特定于浏览器的。 Firefox上的相同代码不会重新排序&#34;插入第9项后的项目(与Chrome一样)。
<子> 如果我猜测一下,我说它与每个浏览器保持对元素的引用(内部)的方式有关,并且在那时它们决定进行一些重复。 子>