2016-05-27 21 views
0

我有这个使用角度路由的角度网站。它有一个登录名,并在该页面上我想隐藏标题。我发现在其他的stackoverflow页面上,最好的方法是使用ng-if或ng-hide。然而这些似乎并没有触发。有一些荷兰人在里面所以才忽略了ng-hide没有触发,可能与ng-view有关吗?

<nav ng-hide="isLogin()" class="navbar navbar-default"> 
    <div class="container-fluid"> 
    <div class="navbar-header"><a href="/" class="navbar-brand"><img alt="Brand" src="../resources/calendar.png"></a></div> 
    <ul class="nav navbar-nav"> 
     <li><a href="./taken">Taken</a></li> 
     <li><a href="./hulpaanvragers">Hulp aanvragers</a></li> 
     <li><a href="./vrijwilligers">Vrijwilligers</a></li> 
    </ul> 
    <ul class="nav navbar-nav pull-right"> 
     <li><a href="./login" ng-click="logout()">logout</a></li> 
    </ul> 
    </div> 
</nav> 

$scope.isLogin = function(){ 
    console.log($location.path() == '/login'); 
    return $location.path() == '/login'; 
}; 

webpage 笔记怎么没有在控制台(随机文本别的东西),甚至在他们的坚韧是的console.log()印在isLogin()功能

的isLogin()函数位于这是在路由的的app.config()函数引用“/登录”

+0

什么是您预期的结果?你想要:1)登录后隐藏标题? 2)修复登录功能的能力? – alphapilgrim

+0

如果你使用一个函数来返回hide/show头的值,那么我希望头部被隐藏起来并将他们的“/ login”登录到控制台 – paul37

+1

,这将导致摘要循环的运行比需要的多得多。我将添加一些代码以获得更好的解决方案。 – alphapilgrim

回答

0

我发现为什么NG隐藏不工作 是因为导航栏不含有控制器

我不知道的事实,NG-视图的一部分原因该导航栏位于NG-视图的范围之外

我固定它通过增加一个额外控制器包围整个身体

编辑*

改变了解决方案并没有添加额外的控制器,但增加了变量rootscope和rootscope访问整个页面

0

这里是一个pen的LoginController中,我建议做一些不同的东西。但是基于上面给出的代码,这是一种解决这个问题的方法。超时是出于示例的目的,这可以从响应成功/失败时的登录设置。

angular.module('app', []) 
    .controller('ExampleController', ExampleController); 

ExampleController.$inject = ['$scope', '$timeout']; 

function ExampleController($scope, $timeout) { 
    $scope.hideNav = false; 
    $scope.loggedIn = function() { 
    //this could also be set in the view. 
    $scope.hideNav = true; 
    } 

    $scope.logOut = function() { 
    $scope.hideNav = false; 
    } 

    $scope.$watch('hideNav', function(newVal, oldVal) { 
    if (newVal == true) { 
     $timeout(function() { 
     $scope.hideNav = false; 
     }, 10000); 
    } 
    }); 

} 
<div class="container" ng-app="app"> 
    <nav ng-hide="hideNav" class="navbar navbar-default" ng-controller="ExampleController"> 
    <div class="container-fluid"> 
     <div class="navbar-header"> 
     <a href="/" class="navbar-brand"> 
      <img alt="Brand" src="../resources/calendar.png"> 
     </a> 
     </div> 
     <ul class="nav navbar-nav"> 
     <li><a href="./taken">Taken</a> 
     </li> 
     <li><a href="./hulpaanvragers">Hulp aanvragers</a> 
     </li> 
     <li><a href="./vrijwilligers">Vrijwilligers</a> 
     </li> 
     </ul> 
     <ul class="nav navbar-nav pull-right"> 
     <li><a href="#" ng-click="loggedIn()">log in</a> 
     </li> 
     <li><a href="#" ng-click="logOut()">logout</a> 
     </li> 
     </ul> 
    </div> 
    </nav> 
</div> 
+0

谢谢我要试一试 – paul37