ho questa fabbrica,
.factory('authentication', [function() {
return {
loginRequired: false
};
}]);
ho questo controller,
.controller('TopNavCtrl', ['$scope', 'authentication', function($scope, authentication) {
$scope.login = function() {
authentication.loginRequired = true;
};
}]);
e ho questa funzione di collegamento in una direttiva,
link: function(scope, element, attrs) {
scope.show = false;
scope.$watch(authentication.loginRequired, function(value) {
scope.show = value;
});
}
Quando authentication.loginRequired = true;
viene eseguito nel controller, lo scope.$watch
nella direttiva non è cal guidato.
Qualche idea, perché?
FWIW, è anche possibile assegnare la fabbrica all'ambito e quindi utilizzare '$ watch' con un'espressione stringa. –
Per favore, condividi ciò che intendi, Michael. È sempre bello vedere le alternative. –