title: Watch controller model value from inside directive
body: <p>I am trying to have angular watch the <code>$viewValue</code> of a controller from inside a directive.</p>
  
  <p>fiddle: <a href="http://jsfiddle.net/dkrotts/TfTr5/5/" rel="nofollow noreferrer">http://jsfiddle.net/dkrotts/TfTr5/5/</a></p>
  
  <pre><code>function foo($scope, $timeout) {
      $scope.bar = "Lorem ipsum";
  
      $timeout(function() {
          $scope.bar = "Dolor sit amet";
      }, 2000);
  }
  
  myApp.directive('myDirective', function() {
      return {
          restrict: 'A',
          require: '?ngModel',
          link: function (scope, element, attrs, controller) {
              scope.$watch(controller.$viewValue, function() {
                  console.log("Changed to " + controller.$viewValue);
              });
          }
      } 
  });
  </code></pre>
  
  <p>As is, the $watch function is not catching the model change done after 2 seconds from inside the controller. What am I missing?</p>