我有以下代码:

<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/

10-12 15:20