2015-04-06 4 views
1

Я хотел бы использовать директиву определенного контроллера и родительский контроллер в функции связи.Угловой JS-директивный специальный контроллер и родительский контроллер

module.directive('parent', function() { 
    return { 
       ... 
       controller: SomeFunction 
      } 
} 

module.directive('child', function() { 
     return { 
       ... 
       require('^parent'), 
       controller: SomeOtherFunction, 
       link: function(scope, element, attr, ctrl) { 
       //ctrl is the parent controller not the SomeOtherFunction 
       } 
      } 
} 

Есть ли способ, что я могу использовать directiveSpecificController, но и иметь доступ к родительскому контроллеру?

ответ

2

Да, вы просто должны требовать свой собственный контроллер также:

http://plnkr.co/edit/2x7yxRfJWqXi1FfZmb3V?p=preview

app.directive('parent', function() { 
    return { 
    controller: function() { 
     this.secret = 'apples'; 
    } 
    } 
}) 

app.directive('child', function() { 
    return { 
    controller: function() { 
     this.secret = 'oranges'; 
    }, 
    require: ['child', '^parent'], 
    link: function(scope, elem, attrs, ctrls) { 
     var parentCtrl = ctrls[1]; 
     var childCtrl = ctrls[0] 
     console.log(parentCtrl.secret); 
     console.log(childCtrl.secret); 
    } 
    } 
}) 
Смежные вопросы