Мы используем AngularJS 1.7.x с UI-Router v5 и закрепленными состояниями.Приложение находится в проекте CodePen: https://codepen.io/DavidNJ/project/editor/XgLYyz
По сути, Sticky States поддерживает активное состояние так же, как родительское состояние остается активным.Чтобы показать только одно, остальные должны быть скрыты.
UI-Router рекомендует использовать ng-show.Чтобы это было легче увидеть, приложение инкапсулировало $state.includes(<state name>)
в функцию, которая записывает сообщение журнала.Он показывает, что true
возвращается ng-show
<div ui-view="v1" ng-show="ac.inState('view1')"></div>
<div ui-view="v2" ng-show="ac.inState('view2')"></div>
, а
vm.inState = (state)=>{
console.log("checking " +state +": "+$state.includes(state));
$state.includes(state);
};
ng-show
помещает класс ng-hide
в тег, пока ng-show
не станет true
.Однако, несмотря на то, что функция возвращает true
, класс никогда не изменяется на ng-show
Это, вероятно, что-то простое, но полностью нас озадачило.
Спасибо,
David