title: AngularJS : binding doesn't work when a method of a controller is called from a directive
body: <p>In the following code, when I click on the <code>span</code>, the new <code>movesNumber</code> value is updated on the view but when the method <code>newMove()</code> is called from the directive, the value of <code>movesNumber</code> in the <code>gameCtrl</code> scope is incremented but isn't updated in the view.</p>
  
  <p>I guess there is something specific with the binding when the scope of a controller is called from a directive but I don't see how.</p>
  
  <p>Here is my HTML :</p>
  
  <pre><code>&lt;section ng-controller="gameCtrl" ng-show="gameIsVisible"&gt;
  
    &lt;span ng-click="newMove()"&gt;{{ movesNumber }} / {{ maxRightMovesNumber }}&lt;/span&gt;
  
    &lt;block ng-repeat="block in game[selectedChapter].levels[selectedLevel].blocks"&gt;&lt;/block&gt;
  
  &lt;/section&gt;
  </code></pre>
  
  <p>Here is my controller :</p>
  
  <pre><code>app.controller(
    'gameCtrl',
    [
      '$scope', '$rootScope', '$document', 'localStorage',
      function ($scope, $rootScope, $document, localStorage)
      {
        $scope.newMove = function()
        {
          $scope.movesNumber ++;
        };
      }
    ]
  );
  </code></pre>
  
  <p>Here is my directive :</p>
  
  <pre><code>app.directive(
    'block',
    [
      "$rootScope", "$document",
      function($rootScope, $document)
      {
        function link(scope, element, attributes)
        {
          if(scope.block.isDroppable)
          {
            $document.on('blockDropped', checkDroppedElement);
          }
  
          function checkDroppedElement(event)
          {
            scope.$parent.newMove();
          }
        }
  
        return {
          restrict: 'E',
          template: '{{ block.value }}',
          link:     link
        };
      }
    ]
  );
  </code></pre>