Javascript 正在基于父状态隐藏
我的主控制器中有一个导航栏,我想要一个基于url显示/隐藏的链接。我使用ui路由器进行路由,所以我想我可以使用$state来获取当前状态的父状态,但我不知道如何。我以前做过这项工作来获取当前状态,它是有效的Javascript 正在基于父状态隐藏,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我的主控制器中有一个导航栏,我想要一个基于url显示/隐藏的链接。我使用ui路由器进行路由,所以我想我可以使用$state来获取当前状态的父状态,但我不知道如何。我以前做过这项工作来获取当前状态,它是有效的 <li ng-hide="$state.current.name === 'new-sector'"> <a ui-sref="new-sector">+ Add new sector!</a> </li> +添加新扇区! 但是
<li ng-hide="$state.current.name === 'new-sector'">
<a ui-sref="new-sector">+ Add new sector!</a>
</li>
+添加新扇区!
但是现在,我正在使用嵌套状态,因此当前状态是new-sector.location。
我的问题是,我希望链接隐藏在所有新的部门子州
提前感谢您的帮助 您可以始终使用
$state.includes(stateName)
检查当前活动状态是否等于或是状态的子状态stateName
下面是一个示例,显示了$state.includes的用法
更多关于Chris T答案的详细信息:
为了避免创建控制器并为每个状态注入$scope和$state,只需使用.run()并将状态信息存储在rootscope中
app.run(函数($state,$rootScope){
$rootscope.stateHolder=$state.current;
}
);
此外,如果您只对州名称感兴趣,只需在$state.current末尾添加.name即可
然后可以通过以下方式轻松访问:
这将隐藏在主页上。
您能否提供plnkr或JSFIDLE?是的ng hide=“$state.includes('new-sector')”
。不过,您必须在作用域上提供$state。我倾向于使用app.run(函数($state,$scope){$scope.$state=$state;})代码>块将其添加到根作用域。