Следующий код работает, как ожидалось, и scope.checked значение отражается в пользовательском интерфейсе обычно
.directive('comparisonSlider',
function() {
return{
restrict: 'E',
templateUrl: '/app/reports/comparison-slider.html',
controller: function ($scope, $rootScope) {
$scope.checked = false;
$rootScope.$on('compare',
function() {
$scope.checked = true;
},
true);
}
}
}
)
, но следующий код также работает, но изменения объем не отражен в пользовательском интерфейсе.
.directive('comparisonSlider',
function() {
return{
restrict: 'E',
templateUrl: '/app/reports/comparison-slider.html',
controller: function ($scope, $rootScope) {
$scope.checked = false;
$rootScope.$on('compare',
function() {
$scope.checked = !$scope.checked;
},
true);
}
}
}
)
Любые идеи?
Try $ log.info ($ scope.checked) в функции. Вам может понадобиться ввести $ log service –
, вы не предоставили много информации для продолжения, но '$ scope.checked' создает' checked' как примитивное свойство в '$ scope', которое подвержено проблемам JavaScript Inheritance , Это включает проблемы с использованием внутри 'ng-repeat',' ng-include', 'ng-if' или других подобных директив, что означает, что проблема может быть в вашем HTML. Если 'checked' был объектом или в случае вашего ответа, свойство объекта (контроллера), то это не подлежит проблемам наследования. См. Http://stackoverflow.com/questions/14049480/what-are-the-nuances-of-scope-prototypal-prototypical-inheritance-in-angularjs – Claies