Javascript ng repeat orderBy-将项目显示为数组中的值

Javascript ng repeat orderBy-将项目显示为数组中的值,javascript,angularjs,Javascript,Angularjs,在我的指令中,我通过作用域接收到一个未排序的值数组,我希望使用ng repeat对其进行排序。原因是排序没有特殊的标准,我只是想确保一些标签按照我想要的顺序显示,所以在link函数中通过indexOf和splice进行手动排序看起来不是很好 我想知道,如果按照我所希望的顺序创建一个新数组,那么在ng repeat中是否可以以某种方式应用显示的标签 举个例子可能有助于理解我的观点 我的指令 $scope.unsortedLabels/['foo1','foo2','foo3']我从父指令接收的标

在我的指令中,我通过作用域接收到一个未排序的值数组,我希望使用ng repeat对其进行排序。原因是排序没有特殊的标准,我只是想确保一些标签按照我想要的顺序显示,所以在link函数中通过indexOf和splice进行手动排序看起来不是很好

我想知道,如果按照我所希望的顺序创建一个新数组,那么在ng repeat中是否可以以某种方式应用显示的标签

举个例子可能有助于理解我的观点

我的指令


$scope.unsortedLabels/['foo1','foo2','foo3']我从父指令接收的标签数组
$scope.desiredLabelsOrder=['foo3','foo1','foo2']//我希望标签显示的顺序

我的模板


这种情况很奇怪,但是你可以通过定制过滤器来设计角度

然后在你的
ng repeat
中使用它,你只需定义新的排列,如

<li ng-repeat="label in unsortedLabels | myFilter: [3,1,2] ></li>

这样做有什么原因吗?后端会向我返回一堆标签。我不能保证它们是否被分类,它们是否都存在。我希望ng repeat+orderBy可以为我排序现有的标签,因为我能想到的唯一替代方法是在链接函数中手动排序标签,我认为这不太优雅。因此,您可以按。。。创建日期订单条件必须是显示标签所选择的顺序,这反映在desiredLabelsOrder中,按创建时间对它们进行排序,否则任何其他条件对我都不起作用。当然,您必须指定一些排序条件。例如,从指示要排序的属性的标签创建一个对象数组。问题是,为什么
foo3
要排在
foo1
之前<如果不能以编程方式指定,则code>ng repeat
无法解决此问题。
<li ng-repeat="label in unsortedLabels | myFilter: [3,1,2] ></li>