title: scope.$watch in directive link function not getting called
body: <p>I have this factory,</p>
  
  <pre><code>.factory('authentication', [function() {
  
      return {
        loginRequired: false
      };
    }]);
  </code></pre>
  
  <p>I have this controller,</p>
  
  <pre><code>.controller('TopNavCtrl', ['$scope', 'authentication', function($scope, authentication) {
  
    $scope.login = function() {
      authentication.loginRequired = true;
    };
  
  }]);
  </code></pre>
  
  <p>and I have this link function in a directive,</p>
  
  <pre><code>link: function(scope, element, attrs) {
  
      scope.show = false;
  
      scope.$watch(authentication.loginRequired, function(value) {
        scope.show = value;
      });
    }
  </code></pre>
  
  <p>When <code>authentication.loginRequired = true;</code> is done in the controller, the <code>scope.$watch</code> in the directive isn't called.</p>
  
  <p>Any ideas why?</p>