我们正在将AngularJS 1.7.x与UI-Router v5和粘性状态一起使用。该应用程序位于CodePen项目中:https://codepen.io/DavidNJ/project/editor/XgLYyz
基本上,粘性状态使状态保持活动状态,就像父状态保持活动状态一样。要只显示一个,其他的都需要隐藏。
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
这可能很简单,但却使我们很困惑。
谢谢
大卫