2016-01-11 3 views
0

У меня есть fiddle, где я использую свойство угловой директивы для доступа к родительскому контроллеру require. Теперь я хочу получить доступ как к родительскому, так и к самому себе в функции link функции директивы компонента.Доступ к родительскому элементу, а также к самоконтроллеру в директиве Angularjs

<div ng-controller="MyCtrl"> 
    <div screen> 
    <div component> 
    </div> 
</div> 
</div> 

Можно ли получить доступ к себя, а также родительский контроллер директивы в postlink функции директивы

ответ

1

нашел решение. Мне просто нужно указать имя той же директивы в массиве require property объекта определения директивы. FIDDLE

.directive('component', function() { 
    return { 
     scope: true, 
     require: ['component','^screen'], 
     controller: function($scope) { 
      this.componentFunction = function() { 
       $scope.screenCtrl.doSomethingScreeny(); 
      } 
     }, 
     link: function(scope, element, attrs, screenCtrl) { 
      scope.screenCtrl = screenCtrl 
      console.log(screenCtrl); 
     } 
    } 
}) 
0

Я полагаю, что вы хотите сделать, это инъекционные объект области видимости от контроллера к вашей директиве. Таким образом, вы можете определить свою директиву как

app.directive('directivename',function(){ 
    return { 
     restrict:'E', 
     scope: { 
      name: "=" 
     } 
     template: '', 
     link:function(scope,elem,attrs){ 

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