如果我的条件保存在 cookie 中,如何在前端使用 ng-if?

How to use ng-if in front end if my condition is in saved in cookies?

当我开始学习 angulerjs 时,我遇到了一些小问题。在开发 angulerjs 应用程序时。

我最近设置了登录过程,现在卡在前端显示上了。 如果用户已登录,我想显示特定内容。 例如:

 <!--show this if cookies is set to true -->
<li><a href="#/logout"><span class="icon mail"></span>Logout</a></li>
<!-- show this if cookies is undefined -->
<li><a href="#/login"><span class="icon mail"></span>Login</a></li>

据我所知,我将不得不为此使用 ng-if。 如果登录值存储在 cookie 中,我如何检查 ng-if 的条件?

控制器

app.controller('AngularLoginController', ['$scope', '$http','$cookies', 
function($scope, $http, $cookies) {  
    $scope.loginForm = function() {         
            $http.post("login.php", {
            'email' :$scope.inputData.email,
            'password':$scope.inputData.password
            }).success(function(data) {
                console.log(data);                  
                if ( data == 'correct') {                   
                var loggedIn = $cookies.get('loggedIn');
                // Setting a cookie
                $cookies.put('loggedIn', true);
                //window.location.href = 'welcome_dashboard.php';
            } 
            else {
                $scope.errorMsg = "Invalid Email and Password";
            }
        })
        }

    }]);

在您的控制器中创建一个函数以在此处使用简单的 javascript

获取 cookie
function getCookie(name) {
  var value = "; " + document.cookie;
  var parts = value.split("; " + name + "=");
  if (parts.length == 2) return parts.pop().split(";").shift();
}  

检查cookie是否存在

$scope.hasCookie=function(){
    var ck=getCookie("your cookie name");
    if(ck && ck !="")
    return true;

  return false;
}

Html

  <!--show this if cookies is set to true -->
<li ng-if="hasCookie()"><a href="#/logout"><span class="icon mail"></span>Logout</a></li>
<!-- show this if cookies is undefined -->
<li  ng-if="!hasCookie()"><a href="#/login"><span class="icon mail"></span>Login</a></li>