2014-11-07 3 views
0

Я создаю приложение AngularJS, и у меня есть некоторый контроллер для моего представления со значением на нем, которое называется $scope.restoreModalVisible, которое я установил на false при инициализации. Это значение будет использоваться в моем DOM как

<div ng-if="restoreModalVisible" ng-controller="RestoreController"> 
    <!-- all my pop-up modal content --> 
</div> 

Проблема в том у меня есть куча директив на странице и один из них должен иметь доступ к этому логическому значению, поскольку он использует кнопку для переключения стоимость. Однако значение не меняется правильно.

У меня создалось впечатление, что Angular «знает», чтобы искать родительские области, если значение не может быть найдено в непосредственной области, поэтому почему свойство не изменяется на уровне ребенка?

В контроллере моей директивы, я могу видеть значение я сделать что-то вроде $scope.$parent.$parent.$parent.restoreModalVisible

My Controller директивы:

controller: function($scope, RestoreManager){ 
      $scope.restoreAccount = function(e, id){ 
       e.preventDefault(); 

       // Here we need to set the RestoreManager 
       RestoreManager.set(id); 
       $scope.restoreModalVisible = true; 
      } 
     } 

ответ

0

как вы объявляя область для директивы? Если вы используете scope: {}, то есть с объектом, Angular создаст область изолирования, которая не прототипически наследуется от родительской области (хотя область действия по-прежнему доступна через $parent)

+0

Да, я использую изолированный объем, но по какой-либо причине Я все еще думал, что это доступно в этот момент –

Смежные вопросы