我有以下代码:
<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上搜索了一个解决方案,但没有找到它......
你能告诉我怎么做吗?我不想改变我的对象的定义...答案 0 :(得分:1)
您应该添加一个字段来订购您的列表,即:
vm.authorities = [{order: 1, name: 'ROLE_USER'}, ...];
并在| orderBy:'order'
ng-repeat
(对不起,现在我已经仔细阅读了所有问题)
如果您不想更改数组,可以创建自定义比较方法。更多信息:https://docs.angularjs.org/api/ng/filter/orderBy