Angular ng-repeat orderBy用于特定模式

时间:2016-11-07 14:11:54

标签: javascript angularjs sorting ng-repeat alphabetical

我有以下代码:

<td>
   <div ng-repeat="authority in user.authorities">
       <span class="label label-info">{{ authority }}</span>
   </div>
</td>

在我的javascript中,user.authorities可以这样定义:

vm.authorities = ['ROLE_USER', 'ROLE_ADMIN', 'ROLE_INVITE', 'ROLE_SuperADMIN'];

一切都很好,但结果是

ROLE_ADMIN

ROLE_INVITE

ROLE_SuperADMIN

ROLE_USER

我想获得:

ROLE_INVITE

ROLE_USER

ROLE_ADMIN

ROLE_SuperADMIN

即非字母顺序...我在stackoverflow上搜索了一个解决方案,但没有找到它......

你能告诉我怎么做吗?我不想改变我的对象的定义...

1 个答案:

答案 0 :(得分:1)

您应该添加一个字段来订购您的列表,即:

vm.authorities = [{order: 1, name: 'ROLE_USER'}, ...];

并在| orderBy:'order'

中使用ng-repeat

(对不起,现在我已经仔细阅读了所有问题)

如果您不想更改数组,可以创建自定义比较方法。更多信息:https://docs.angularjs.org/api/ng/filter/orderBy