Angularjs Ng开关不工作

Angularjs Ng开关不工作,angularjs,ng-switch,Angularjs,Ng Switch,我使用ng开关如下。这是ng开关的正确用法吗?我不希望它位于数组中,因为我将它与范围变量一起使用 在我的HTML中,我定义如下。userRole是我希望搜索基于的变量,在when中,我使用了基于div标记内容的值 <div ng-switch on ="userRole"> <div ng-switch-when="admin"> [...] </div> <div ng-switch-when="user"> [.

我使用ng开关如下。这是ng开关的正确用法吗?我不希望它位于数组中,因为我将它与范围变量一起使用

在我的HTML中,我定义如下。
userRole
是我希望搜索基于的变量,在
when
中,我使用了基于div标记内容的值

<div ng-switch on ="userRole">
  <div ng-switch-when="admin">
     [...]
  </div>
  <div ng-switch-when="user">
     [...]
  </div>

但我的屏幕上什么也没显示,这让我想知道我应该如何使用ng开关。我不想使用ng hide/ng show。

这是一把关于ng开关工作原理的精巧小提琴。。。。您使用ng开关的方式完全有效。我猜你的
userRole
没有使它失败的价值,你能仔细检查一下吗

<div ng-controller="LoginCheckCtrl">
   <div ng-switch on="loginData"> 
      <div ng-switch-when="false" ng-include="'login'"></div>
      <div ng-switch-when="true" ng-include="'logout'"></div>
   </div>
</div>

<script type="text/ng-template" id="login">
    <button ng-click="login()">Login</button>
</script>

<script type="text/ng-template" id="logout">
    <button ng-click="logout()">Logout</button>
</script>
拨弄

控制台.log()中显示变量
$scope.userRole
。因为
ng开关
按预期工作。举个例子。
<div ng-controller="LoginCheckCtrl">
   <div ng-switch on="loginData"> 
      <div ng-switch-when="false" ng-include="'login'"></div>
      <div ng-switch-when="true" ng-include="'logout'"></div>
   </div>
</div>

<script type="text/ng-template" id="login">
    <button ng-click="login()">Login</button>
</script>

<script type="text/ng-template" id="logout">
    <button ng-click="logout()">Logout</button>
</script>
var app = angular.module('myApp', []);

function LoginCheckCtrl($scope) {
    $scope.loginData = false
    $scope.login = function() {
        console.log($scope.loginData  ? 'logged in' : 'not logged in');
        $scope.loginData = true;
    };
    $scope.logout = function() {
        console.log($scope.loginData ? 'logged in' : 'not logged in');
        $scope.loginData = false;
    };
}