我正在开发一个实现了UI路由器的项目,当该项目是当前路由时,它使用ui-sref-active =“active”将活动类添加到导航菜单项。但是,当您导航到该视图中的嵌套视图时,父菜单项不再处于活动状态。请参阅以下Plunker:
http://plnkr.co/edit/2CoEdS?p=preview
默认情况下(或者如果您点击它)路由1是“活动的”。当您点击“显示列表”时,您将看到路由1不再有效。
编辑:
这个例子与我的实际项目的唯一区别是,我的实际项目中的导航菜单有自己的控制器,因此不会使用与“route1”的控制器相同的范围。
编辑对于更新的ui路由器0.2.13:
ui-sref-active =“active”现在在当前状态是ui-sref的状态或任何孩子时设置“活动”类
ui-sref-active-eq =“active”表现为ui-sref-active的先前迭代,并且仅将类设置为精确状态
原始答案:
请参阅open ui-router问题:
https://github.com/angular-ui/ui-router/issues/704和818
人们建议的一般解决方法是:
ng-class="{active:$state.includes('route1')}"
当然,$ state必须添加到$ scope。查看更新的plunk:http://plnkr.co/edit/KHLDJP?p=preview