如何在某些页面中隐藏Angular layout.html中的元素

时间:2015-07-31 01:39:26

标签: javascript html angularjs

所以,我正在使用ui-router和index.html作为我的布局,在其中我有这个div会附加其他页面,例如:

我有这个HTML,这是我的layout.html:

<html ng-app="myApp">
 <head>
   <title> My layout.html </title>
 </head>
 <body>
  <nav>
    I have this NAVBAR
  </nav>
  <div ui-view></div> 
 </body>
</html>

因此,如果我访问页面'posts',Angular会将代码附加到<div ui-view></div>

中的posts.html中

没什么不寻常的,对吧?

问题是..我有一个404.html模板文件,我不想显示导航栏。如果页面是404.html,可以取消或隐藏导航栏吗?

1 个答案:

答案 0 :(得分:3)

我会为导航部分创建一个控制器。

.controller('NavCtrl', function($scope, $state) {
    $scope.$state = $state;
})

然后在当前状态为404时隐藏导航:

<nav ng-controller="NavCtrl" ng-hide="$state.current.name == '404'">
    I have this NAVBAR
</nav>