Ben yinelemeli bir ebeveyn "kutu" yönergesinin kontrolörü ulaşmaya çalışıyorum: Ben denetleyici değişken bağlantı fonksiyonunda undefined
olmasını beklediğinizEbeveyn yönergesinin denetleyicisine, yinelemeli olarak gereksinim duyarak nasıl erişilir?
<body ng-app="main">
<!-- no nesting: parent is the just body -->
<box></box>
<script type="text/javascript">
angular.module('main', [])
.directive('box', function() {
return {
restrict: 'E',
controller: function() { },
require: '?^box', // find optional PARENT "box" directive
link: function(scope, iElement, iAttrs, controller) {
// controller should be undefined, as there is no parent box
alert('Controller found: ' + (controller !== undefined));
}
};
});
</script>
</body>
ama gerçek kutu direktifin kontrolörü olsun .
Yani benim soru ... Böyle durumda VELİ denetleyicisi erişmek için nasıl:
<box>
<box></box>
</box>
ile
require: '?^box',
yerine, orada benim orijinal örnekte hiçbir VELİ kutusudur, bu yüzden dördüncü parametre olarak 'undefined' almak için bekliyorum Bağlama işlevi, örneğin kendisi denetleyicisinin değil – maXAncak bir denetleyici bildiriyorsunuz. Böylece ebeveyn o denetleyiciyi alır ve (varsa) çocuklardan miras alır. Amacınız belirli bir direktifin ebeveyn mi, yoksa çocuk mu olduğunu bilmek mi? Öyleyse, belki de $ parent kapsamına bakmak istersiniz? – KayakDave
Özellikle kapsamı kullanmanız gerekiyorsa, kapsamları zorlaştırabileceğinden, aslında bu durumda kapsam kullanmak istemiyorum. Ayrıca, en iyi uygulama denetleyicileri ve yönerge yönlendirme iletişimi için 'require' kullanmaktır. Benim amacım, farklı bir isimle bir ebeveyn yönergesine ihtiyaç duyduğunuzda bir çekicilik gibi çalışmasıdır, neden bunu tekrar tekrar yapamazsınız. – maX