Я застрял.Не могу понять это.Этот вопрос очень просто показать, но я не совсем уверен, как его сформулировать, поэтому постараюсь.
Во-первых, вот макет всего моего приложения (проблема заключается в Header.jsp):
<jsp:include page="../home/Header.jsp" />
<jsp:include page="../home/Modals.jsp" />
<div data-ng-view data-save-scroll-position data-position-relative-to-menu></div>
<jsp:include page="../home/Footer.jsp" />
Проблема очень проста.У меня есть следующее data-ng-class
в разделе data-ng-view
, которое меняет вкладку на активную, если что-то верно (проблема в том, что она не будет работать ни в одном сценарии, даже если в названии вкладки отображается true
):
<ul class="nav nav-tabs">
<li role="presentation" data-ng-class="tab.isSelected ? 'active' : ''" data-ng-repeat="tab in ctrl.tabs"
data-ng-click="ctrl.fetchBIReports(tab)">
<a href="" data-ng-bind="::tab.isSelected"></a>
</li>
</ul>
В JSP, который использует data-ng-include для вышеупомянутой разметки, есть боковая навигация, чтобы перейти на эту страницу.После нажатия на эту боковую навигацию он выделил вкладку 'active'
, как и ожидалось (пытаясь не включать весь jsp):
<div class="side-navbar">
<ul>
<li class="{{ ctrl.navigate.path == 'bi/schedule' ? 'active-link' : 'normal-link'}}">
<a href="#/bi" data-ng-click="ctrl.changeNavigation('bi/schedule')">Schedule Reports</a>
</li>
</ul>
</div>
<div class="content-right" data-ng-include="ctrl.navigate.path"></div>
content-right
включает JSP, упомянутый во второй разметке.
Пока все хорошо.Вот демонстрация того, как это работает (включая side-navbar
и content-right
):
![enter image description here](https://i.stack.imgur.com/NwUNV.png)
Проблема в том, что в моем Header.jsp естьпанель навигации, которая ведет меня на ту же страницу.Если он нажимается с другой страницы с другим контроллером, то он работает.Но если я нахожусь в текущем контроллере и щелкаю по этой ссылке навигационной панели, тогда data-ng-class не принимает 'active'
в качестве своего класса.Вот разметка для Header.jsp для этой ссылки:
<li class="dropdown" data-roles="['ROLE_ADMIN']">
<a href="#/bi" class="dropdown-toggle" data-toggle="dropdown" data-ng-click="ctrl.changeNavigation('bi/schedule')"
role="button" aria-haspopup="true" aria-expanded="false">BI Management<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#/bi" data-ng-click="ctrl.changeNavigation('bi/schedule')">Schedule Reports</a></li>
</ul>
</li>
Вот демонстрация того, что он не работает, даже если он печатает true в пользовательском интерфейсе:
![enter image description here](https://i.stack.imgur.com/bmbVd.png)
Единственная проблема с этим пользовательским интерфейсом.Все данные заполнены.Записи отображаются для правильной вкладки.Четная боковая навигационная панель отображает правильный активный класс.