在Typescript和AngularJS中对字符串枚举进行排序

时间:2016-03-09 10:15:27

标签: angularjs enums typescript

我在Typescript中定义了一个枚举:

enum PriorityLevel {
High = <any>'High',
Normal = <any>'Normal',
Low = <any>'Low'}

然后在我的HTML中我有:

<button id= "assignmentBtn" type="button" ng-repeat="item in list.getItems()" class="btn" ng-class="list.getcolor(item)">
        {{item.description}}
</button>

每个项目都有PriorityLevel。

我的问题是我想按PriorityLevel对此列表进行排序,以便High位于顶部,然后是Normal,然后是Low。 我试着添加

ng-repeat="item in list.getItems() | orderBy:'priority'"

但很明显,这会对这些物品进行特别的订购。

我觉得我必须制作一个自定义的orderby函数,但任何人都可以帮我看看我的情况应该如何看待吗?

1 个答案:

答案 0 :(得分:1)

  

我觉得我必须制作一个自定义的orderby函数,但任何人都可以帮助我了解我的情况应该如何看待

指向控制器中的自定义功能:

ng-repeat="item in list.getItems() | orderBy:list.customOrder"

customOrder

customOrder = function(item) {
   return item.priority === 'High' ? 3
          : item.priority === 'Normal' ? 2 
          : 1
};