2015-04-06 116 views
1

我想在鏈接功能中使用指令特定的控制器和父控制器。Angular 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); 
    } 
    } 
}) 
相關問題