使用ng-hide / ng-show隐藏导航栏

时间:2015-06-09 17:04:04

标签: angularjs

我无法使用此导航栏显示其中一个导航栏,它显示了两个导航栏。我做错了什么?

查看:            

    <!-- Logged in -->
    <div ng-show="loggedIn">
      Navbar logged in
    </div>

    <!-- Logged out-->
    <div ng-hide="!loggedIn">
      Navbar logged out
    </div>

  </div>
</nav>

控制器:

.controller('mainCtrl', ['$scope', '$state', 'userService',
  function($scope, $state, userService) {

    $scope.loggedIn = userService.isLoggedIn();

    $scope.login = function() {
      userService.login();
      $state.go('home');
    };

    $scope.logout = function() {
      userService.logout();
      $state.go('login');
    };

  }
]);

3 个答案:

答案 0 :(得分:2)

删除“!” ng-hide:

<!-- Logged out-->
<div ng-hide="loggedIn">
  Navbar logged out
</div>

答案 1 :(得分:1)

您需要更新条件

<div ng-hide="!loggedIn">

<div ng-show="!loggedIn">

答案 2 :(得分:1)

如果你想以更好的性能解决这个问题,你不需要在DOM中保留隐藏的导航栏,你可以使用:

<!-- Logged in -->
<div ng-if="loggedIn">
  Navbar logged in
</div>

<!-- Logged out-->
<div ng-if="!loggedIn">
  Navbar logged out
</div>