2016-07-12 3 views
0

Что требует от этого в этом угловом указании? Я нашел этот фрагмент и попытался понять, что он говорит.В чем смысл «require: ^»?

.directive('accordionGroupHeading', function() { 
    return { 
     restrict: 'EA', 
     transclude: true, 
     template: '',  
     replace: true, 
     require: '^accordingGroup', 
     link: function(scope, element, attr, accessibleAccordionGroupCtrl, transclude) { 

      accessibleAccordionGroupCtrl.setHeading(transclude(scope, function() {})); 
     } 
    }; 
}) 

ответ

0

От https://docs.angularjs.org/guide/directive

Префикс ^^ означает, что эта директива ищет контроллер у родителей. (A^Приставка бы директиву искать контроллер на своем собственном элементе или его родителей;. Без префикса, директива будет смотреть только на своем собственном элементе)

Так в основном вы будете иметь ошибку, если ваш директива не найдет контроллер. Используя require, вы сможете получить доступ к контроллеру с помощью директивы link.

link: function(scope, element, attrs, controller) {}