2015-12-09 66 views
0

我想設置ng-show變量isloggedout與cookie值,這是工作(因此$ scope.isloggedout是真或假)應該觸發ng顯示或ng-隱藏這顯然不工作。Ng顯示與餅乾

我的應用程序控制器:

app.controller('projectCtrl', ['$scope', '$http', '$location', '$cookies', '$cookieStore', '$window', 
function($scope, $http ,$location,$cookies,$cookieStore,$windows) { 
    $scope.isloggedout = $cookieStore.get('value'); 
}]); 

我的HTML:

<html ng-app="rjtApp" ng-controller="projectCtrl"> 
    <div > 
    <ul class="nav navbar-nav navbar-right" > 
    <li><a href="#Signout" >Login <span class="glyphicon glyphicon-user" ng-show="isloggedout"></span></a></li> 
    <li><a href="#Login" >LogOut <span class="glyphicon glyphicon-user" ng-show="!isloggedout"></span></a></li></ul> 
    </div> 
</html> 

任何幫助嗎?

+0

沒有任何理由爲什麼沒有在你的HTML代碼中body標籤? – Gianmarco

回答

0

我試過你的代碼,我不能很好地理解你爲什麼這麼做,只在span中使用ng-show指令。我能想到的是要顯示或隱藏一個按鈕,所以我適應你的HTML:

<html ng-app="rjtApp" ng-controller="projectCtrl"> 
<body> 
    <div> 
     <ul class="nav navbar-nav navbar-right"> 
      <li ng-show="isloggedout"><a href="#Signout">Login <span class="glyphicon glyphicon-user"></span></a></li> 
      <li ng-hide="isloggedout"><a href="#Login">LogOut <span class="glyphicon glyphicon-user"></span></a></li> 
     </ul> 
    </div> 

<!-- You will need to import here your angular.js file and your personal js files. --> 
</body> 
</html> 

我也建議你限制控制器內部的變種,這樣你就不會污垢範圍。該控制器將是:

app.controller('projectCtrl', ['$scope', '$http', '$location', '$cookies', '$cookieStore', '$window', function($scope, $http ,$location,$cookies,$cookieStore,$windows) { 
    var self = this; 
    self.isloggedout = $cookieStore.get('value'); 
}]); 

和HTML:

<html ng-app="rjtApp" ng-controller="projectCtrl as pc"> 
<body> 
    <div> 
     <ul class="nav navbar-nav navbar-right"> 
      <li ng-show="pc.isloggedout"><a href="#Signout">Login <span class="glyphicon glyphicon-user"></span></a></li> 
      <li ng-hide="pc.isloggedout"><a href="#Login">LogOut <span class="glyphicon glyphicon-user"></span></a></li> 
     </ul> 
    </div> 

<!-- You will need to import here your angular.js file and your personal js files. --> 
</body> 
</html>