@bullyy

Почему не изменяются данные в родительской директиве?

<div data-block>
        <div data-block-header>
        </div>
        <div data-block-body>
        </div>
    </div>


angular.module('app').directive('block', [function() {
  return {
    restrict: 'A',
    controller: function($scope, $element) {
      $scope.showBody = false;
      this.toggleBody = function() {
        $scope.showBody = !$scope.showBody;
      }
      $scope.$watch('showBody', function() {
        console.log('changed')
      })
    },
    link: function(scope, element, attrs, ctrl) {}
  }
}]);

angular.module('app').directive('blockHeader', [function() {
  return {
    restrict: 'A',
    require: '^block',
    template: '<div>header</div>',
    controller: function($scope, $element) {},
    link: function(scope, element, attrs, ctrl) {
      element.bind('click', function() {
        ctrl.toggleBody();
      })
    }
  }
}]);

angular.module('app').directive('blockBody', ['$http', '$templateRequest', '$compile', function($http, $templateRequest, $compile) {
  return {
    restrict: 'A',
    require:'^block',
    template: '<div ng-show="showBody">Body</div>',
    controller: function($scope, $element) {
    },
    link: function(scope,element,attrs,ctrl){
    }
  }
}]);

По клику по block-header пытаюсь изменить переменную в block, которая влияет на отображение block-body, почему данные не изменяются? Нормальная ли это практика?
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
используйте ngClick для таких задач, и почитайте про $digest цикл.

p.s. Раз уж вы только начинаете, почитайте
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы