В мой контроллер директивы У меня есть $ часы, как это:
$scope.$watch(function() {
return service.abc;
}, function(newVal, oldVal) {
$scope.abc = {abc: newVal};
});
Я заметил, что у меня возникли проблемы с этой переменной становится неопределенным, когда используется в других контроллеров. Я создал еще один часы:
$scope.$watch('abc', function() {
console.log($scope.abc);
});
С этими часами я вижу, что объект абв становится определенной со значением от службы, но потом становится неопределенным. Я уверен, что я нигде не изменяю этот объект. Даже если я установил
$scope.abc = {abc: angular.copy(newVal)};
для обеспечения того, чтобы объект не изменялся, он по-прежнему становится неопределенным. Я попытался использовать синтаксис vm controllerAs и попробовать разные имена переменных, чтобы убедиться, что он не изменяется, но он все еще не определен. Что происходит? Мне нужно передать этот объект в директиву и иметь возможность модифицировать его из этого родительского контроллера и иметь внутренний контроллер-указатель, отражающий изменения.