我有以下代码:
<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上搜索了一个解决方案,但没有找到...
你能告诉我我该怎么办吗?我不想更改对象的定义...
最佳答案
您应该添加一个字段来订购列表,即:
vm.authorities = [{order: 1, name: 'ROLE_USER'}, ...];
并在
| orderBy:'order'
中使用ng-repeat
(对不起,现在我已经仔细阅读了所有问题)
并且如果您不想更改数组,可以创建一个自定义的compare方法。此处更多信息:https://docs.angularjs.org/api/ng/filter/orderBy
关于javascript - Angular ng-repeat顺序通过允许特定模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40467254/