title: Ng-show is not dynamically adding element
body: <p>I have a variable called <code>won</code> in my controller that toggles on and off but the ng-show is not dynamically hiding/showing the elements. Why? It seems to work when I initially set <code>won = false/true</code> but not while the application is running.</p>
  
  <pre><code>&lt;div class='container' ng-controller='CardsCtrl'&gt;
    &lt;div class='win' ng-show='won'&gt;
      &lt;img ng-src='images/win.gif'&gt;
    &lt;/div&gt;
    &lt;div ng-show='!won' ng-repeat='card in cards' ng-click='card.flipped || changeState(card)'
        ng-class="{'card' : !card.flipped, 'card flipped': card.flipped}"&gt;
      &lt;img ng-src='{{card.back}}' class='back side'&gt;
      &lt;div class='face side'&gt;
        &lt;img ng-src='{{card.logo}}' class='logo'&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  
  &lt;/div&gt;
  </code></pre>
  
   
  
  <pre><code>var memoryApp = angular.module('memoryApp', []);
  
  memoryApp.controller('CardsCtrl', function ($scope, $timeout){
    var won = $scope.won = false;
    var cards = $scope.cards = [];
    var current_cards = [];
    var checkingCards = $scope.checkingCards = false;
  
  
    var logos = _.shuffle([0,0,1,1,2,2,3,3,4,4,5,5]);
    for (var i = 0; i &lt; 12; i++){
      new_card = new Card(logos[i]);
      // $interval(new_card.oscillate, 2000);
      cards.push(new_card);
  
    }
    cards = _.shuffle(cards);
  
  
    $scope.changeState = function (card) {
      won = !won;
      console.log(won);
      // if (checkingCards){
      //   return;
      // }
      // card.flip();
      // current_cards.push(card);
      // if (current_cards.length === 2){
      //   checkingCards = true;
      //   $timeout(compareCards, 1500);
      // }
    }
  
    function compareCards(){
        if (!current_cards[0].compare(current_cards[1])){
          current_cards[0].flip();
          current_cards[1].flip();
        }
  
        if (checkWon()){
          won = true;
        }
        current_cards = [];
        checkingCards = false;
        console.log(won);
    }
  
    function checkWon(){
      for (var i = 0; i &lt; cards.length; i++){
        if (cards[i].flipped === false){
          return false;
        }
      }
      return true;
    }
  
  });
  </code></pre>