[html]
<!DOCTYPE html>
<html lang="en-US">
<head>
  <title>ng-switch directive</title>
</head>
<body ng-app="spApp">
  <h1>ng-switch directive</h1>
  <div ng-controller="SPController">
    <div ng-switch on="data.switch">
      <div ng-switch-when="1">Shown when switch is 1</div>
      <div ng-switch-when="2">Shown when switch is 2</div>
      <div ng-switch-default>Shown when switch is anything else than 1 and 2</div>
    </div>
  </div>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
  <script src="App.js"></script>
  <script src="Controller.js"></script>
</body>
</html>
[/html]
[javascript]
myApp.controller("SPController", function($scope) {
     $scope.data = {};
     $scope.data.switch = 3;
 });
[/javascript]
Above example contains a 
div element with an 
ng-switch attribute and on attribute. The 
on attribute determines whether the data in the model should turn switch on.
Inside the 
div element, there are three nested div elements. The first two nested div elements contain an 
ng-switch-when attribute. The value of this attribute determines what value the model data referenced in the on attribute of the parent 
div should have for the nested 
div to be visible. 
In this example, the first nested 
div is visible when the value of 
data.switch is 
1 and the second nested 
div is visible when the value of 
data.switch is 
2.
The third nested div has ng-switch-default attribute. If no other ng-switch-when directives are matched, then the div with the ng-switch-default attribute will be shown.
In the above example, the controller function sets 
data.switch to 
3  i.e. the nested div is shown along with 
ng-switch-default attribute. Then, the two other settled 
div components will be expelled from the DOM totally.
Output: