@schurin
Люблю катать с гор, особенно на санках

Почему $watch в директиве не следит за переменными $scope?

Здравствуйте!
<div ng-controller="ParametersCtrl as ctrl">
    <div class="modal-resize" resize-parameters ng-click="ctrl.resize()">Раскрыть</div>
    <!--Разметка-->
</div>


Кусок из контроллера
this.resize = function() {
			$scope.fullScreen = !$scope.fullScreen;
		};


Директива
define(['app'], function(app) {
	app.directive('resizeParameters', function() {
		return {
			restrict: 'A',
			link: function($scope, element, attrs) {
				$scope.$watch($scope.fullScreen, function(fullScreen) {
console.log('resize');
				})
			}
		}
	})
});


$scope не изолирован, ctrl.resize() отрабатывает, console.log('resize') вызывается лишь при инициализации
  • Вопрос задан
  • 230 просмотров
Решения вопроса 1
@vsvladimir
Вроде так изменить нужно:
$scope.$watch($scope.fullScreen, function(fullScreen)

$scope.$watch("fullScreen", function(fullScreen)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы