我有一系列菜单项,我试图根据用户权限显示。每个菜单项都有一个属性group
,它是菜单项所属的组号。项目应以升序组号显示,每组后应有一个分隔符,表示组之间的分隔。
<li ng-repeat="item in (sortedItems = (navSidebar.menu.items | orderBy:['group','position','title']))" data-ng-if="item.show()">
<span>{{item.title}}</span>
<hr ng-show="item.group !== sortedItems[$index+1].group && !!sortedItems[$index+1].group && item.group !== 0">
</li>
首先,我按组排序项目,然后按每个组排序。然后我将sortedItems
作为新数组。然后,如果项目组编号与下一个项目不同,我基本上会显示分隔符。
item.show()
方法返回一个布尔值,它根据用户权限显示/隐藏项目。我面临的问题是分频器逻辑总是检查下一个项目的组号,但是某个用户看不到下一个项目。因此,它抛弃了逻辑,并且分频器不一致。
是的,我知道可以将数组注入到视图中,并且已经在控制器中完成了所有逻辑。我被严格告知在视图中这样做。
有关如何完成此任务的任何建议?第一次在这里发帖。