2016-06-11 53 views
1

我有这样的注销按钮采用NG-显示隐藏signout后注销按钮:无法在angularjs

<li class="dropdown" data-ng-if="userName"> 
    <a href class="dropdown-toggle clear" data-toggle="dropdown" data-ng-show="userName"> 
    </a> 
    <!-- dropdown --> 
    <ul class="dropdown-menu> 
     <li ng-hide="fb_id"> 
      <a ui-sref="app.changePassword">Change Password</a> 
     </li> 
     <li> 
      <a ui-sref="app.changeProfilePic">Change Profile Picture</a> 
     </li> 
     <li data-ng-show="userName"> 
      <a ui-sref="access.signout" data-ng-if="userName">Logout</a> 
     </li> 
    </ul> 
    <!--/dropdown --> 
</li> 

和Controller:

$scope.logIn = function (user) { 
    $scope.myPromise = AuthService.login({ 
     'uid': user.email, 
     'password': user.password, 
    }).then(function (response) { 
     $localStorage.userName = response.userName; 
     $scope.userName = $localStorage.userName; 
    }, function (error) { 
     $scope.authError = true; 
    }); 
}; 

登出控制器:

$scope.userName = ""; 
delete $localStorage.userName; 
$rootScope.userName = ""; 

无所谓我使用ng-ifng-show它仍然显示注销按钮和下拉。

回答

1

请尝试下面的代码。

<a ui-sref="access.signout" data-ng-if="userName != ''">Logout</a> 
+0

谢谢。这一个实际上修复了它。实际上,设置'userName = null'不适用于下拉菜单 – kittu

0

这应该做

<li data-ng-show="userName !== ''"> 
    <a ui-sref="access.signout">Logout</a> 
</li>