0

Я пытаюсь получить доступ к свойствам изолированной области моей директивы. Я немного новичок в angularJS, поэтому я не уверен, действительно ли это возможно или нет.Доступ к свойствам изолированной области действия директивы от контроллера

Ниже мой код:

angular.module('myModule').directive('myDirective', function() { 
      return { 
       restrict: 'EA', 
       require: 'ngModel', 
       scope: { 
        type: '=', 
        fName: '=', 
        lName: '=', 
       }, 
       templateUrl: '...' 
      }; 
     } 
    ); 

    angular.module(myModule).controller('myCtrl', [ 
     '$scope', 
     function($scope) { 
     $scope.openLink= function() { 
      if ($scope.type === 'member') { //Here is where I want to access the type from the scope of the directive! 
       $window.open('http://wwww.google.com, 'myWindow', 'menubar=0, width=600, height=680, scrollbars=yes, resizable=yes, top=180, left=350'); 
      } 
     }; 
    } 
]); 

Я был бы признателен, если кто-то может помочь.

Большое спасибо

+0

Изолированный объект изолирован, если только вы не сделаете его общедоступным. Правильный способ сделать это - использовать контроллер. Обратитесь к [docs] (https://docs.angularjs.org/guide/directive) и изучите использование свойства 'controller' в вашей директиве. – Brett

+0

Спасибо за ваш комментарий – Moss110

ответ

0

Да, вы можете сделать that.you нужно добавить свойство «тип» в вашем области контроллера, и вы уже умирала «тип» в директиве в качестве значения (refrence), а затем установить свой «тип» в либо в функции связи, либо в директивном контроллере.

angular.module(myModule).controller('myCtrl', [ 
      '$scope', 
      function($scope) { 
      $scope.type=""; 
      $scope.openLink= function() { 
       if ($scope.type === 'member') { //Here is where I want to access the type from the scope of the directive! 
        $window.open('http://wwww.google.com, 'myWindow', 'menubar=0, width=600, height=680, scrollbars=yes, resizable=yes, top=180, left=350'); 
       } 
      }; 
     } 
angular.module('myModule').directive('myDirective', function() { 
      return { 
       restrict: 'EA', 
       require: 'ngModel', 
       scope: { 
        type: '=', 
        fName: '=', 
        lName: '=', 
       }, 
       templateUrl: '...', 
       controller:function($scope){ 
        $scope.type="member"; 
       } 

      }; 
     } 
    ); 
Смежные вопросы