ngShow не работает с UI-Router StickyStates - PullRequest
0 голосов
/ 19 апреля 2019

Мы используем 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

...