[英]Angular JS/UI-Router: disable directives for a given state?
我有一个使用UI路由器的Angular 1.3应用程序。 我有一个页面的视图和标题的指令和页脚的另一个。
<body ng-controller="AppCtrl as app">
<!-- header -->
<div header></div>
<!-- content -->
<div ui-view=""></div>
<!-- FOOTER -->
<div footer></div>
我的应用程序中有一些状态,我不想显示页眉和/或页脚。 怎么做的?
在控制器中实现一个方法,用于确定标头是否应该对给定状态可见,例如
.controller('AppCtrl', function() {
this.isHeaderVisible = function() {
return ...// your logic here
}
});
然后使用ng-if
(或根据评论的ng-show
):
<div header ng-if="app.isHeaderVisible()"></div>
页脚也是如此。
不要使用ng-hide或控制器。 Ui-router具有内置的功能。 根据您当前的状态,使用嵌套状态和嵌套视图显示/隐藏。 看看这些链接:
设置一个plunker,我帮助你让它工作。
如果您正在为状态使用单独的控制器,则可以在每个控制器中设置布尔范围变量,然后使用这些变量和ng-show来控制显示的内容。
请使用角度ui-router
!!!
组织您的观点是一种非常好的风格:
文档: https : //github.com/angular-ui/ui-router
示例: http : //angular-ui.github.io/ui-router/sample/#/
Controllers + ng-hide
不能很好地处理嵌套视图,因为DOM太多了。 因此, ui-route
被开发用于实现它。 尽管可以使用ng-hide
,但ui-route更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.