mam to fabryka,
.factory('authentication', [function() {
return {
loginRequired: false
};
}]);
mam ten kontroler,
.controller('TopNavCtrl', ['$scope', 'authentication', function($scope, authentication) {
$scope.login = function() {
authentication.loginRequired = true;
};
}]);
i mam tę funkcję łącza w dyrektywie,
link: function(scope, element, attrs) {
scope.show = false;
scope.$watch(authentication.loginRequired, function(value) {
scope.show = value;
});
}
Po wykonaniu authentication.loginRequired = true;
w kontrolerze, scope.$watch
w dyrektywie nie jest cal doprowadziło.
Jakieś pomysły, dlaczego?
FWIW, możesz również przypisać fabrykę do zakresu, a następnie użyć '$ watch' z wyrażeniem ciągu. –
Proszę, podziel się tym, co masz na myśli, Michael. Zawsze dobrze jest zobaczyć alternatywne rozwiązania. –