la portée.$regarder dans la directive fonction de lien pas appelé

J'ai cette usine,

.factory('authentication', [function() {

    return {
      loginRequired: false
    };
  }]);

J'ai ce contrôleur,

.controller('TopNavCtrl', ['$scope', 'authentication', function($scope, authentication) {

  $scope.login = function() {
    authentication.loginRequired = true;
  };

}]);

et j'ai cette fonction de lien dans une directive,

link: function(scope, element, attrs) {

    scope.show = false;

    scope.$watch(authentication.loginRequired, function(value) {
      scope.show = value;
    });
  }

Quand authentication.loginRequired = true; est fait dans le contrôleur, le scope.$watch dans la directive n'est pas appelé.

Des idées pourquoi?

OriginalL'auteur Johan Alkstål | 2013-10-09