AngularJS在应用页面的导航栏中有条件地显示登录/注销按钮

Jas*_*per 2 javascript angularjs

main.jsp中

<html>
<body ng-app="myApp">

<div class="navbar">
   <a href="/order"> View Orders </a>
   <a href="/logout" ng-show="$scope.isUserLoggedIn"> Logout </label>
   <a href="/login" ng-show="!$scope.isUserLoggedIn"> Login </label>    
</div>
<div ng-view></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)


控制器

var myApp = angular.module('myApp', ['ngRoute']);
...    
            // route for the default home page
            .when('/', {
                templateUrl : function($node, tattrs) {
                      return "resources/html/home.html";
                },
                controller  : 'mainController'
            })


            // route for the order page
            .when('/order', {
                templateUrl : function($node, tattrs) {
                      return "resources/html/order.html";
                },
                controller  : 'orderController'
            })
Run Code Online (Sandbox Code Playgroud)

....

myApp.controller('mainController', function($scope, $http) {
    ....
    $scope.isUserLoggedIn = true; //or false
.....
Run Code Online (Sandbox Code Playgroud)


问题:
$ scope.isUserLoggedIn对Login/Logout hrefs没有影响.范围可能无法在主应用页面上访问(即在ng-app页面的导航栏中).

我想显示有条件地隐藏登录/注销按钮.有任何想法吗?

Nit*_*rpe 6

您缺少分配controllerdiv

不需要在$scope那里使用,只需使用

<div class="navbar" ng-controller="mainController">
   <a href="/order"> View Orders </a>
   <a href="/logout" ng-show="isUserLoggedIn"> Logout </label>
   <a href="/login" ng-show="!isUserLoggedIn"> Login </label>    
</div>
Run Code Online (Sandbox Code Playgroud)