Javascript 正在基于父状态隐藏

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> +添加新扇区! 但是

我的主控制器中有一个导航栏,我想要一个基于url显示/隐藏的链接。我使用ui路由器进行路由,所以我想我可以使用$state来获取当前状态的父状态,但我不知道如何。我以前做过这项工作来获取当前状态,它是有效的

<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;})块将其添加到根作用域。