2015-04-20 141 views
3

我們有兩個指令,分別叫做parentchild。他們都有定義的控制器,它們具有一些功能。對於child指令,我們可以:如何在指令中訪問子控制器和父控制器?

  • 訪問parent controllerrequire財產(require: '^parent'),從而接收第四個參數我們與它的價值鏈接功能:function link(scope, elem, attrs, parentCtrl)
  • 訪問child controller:不使用require,第四連接參數將是我們的childController。

所以,問題是:我們如何能夠在child的鏈接功能引用孩子和家長控制器?下面是一個以此爲例的跳棋:http://plnkr.co/edit/WzU6iJgf2zLLApFHeiEG?p=preview

回答

5

您可以將數組傳遞給您的指令定義的'require'屬性,其中包括您的子指令和您的父指令。您的鏈接功能的第四個參數將是一個數組:

app.directive('childDirective', function() { 
    require: ['childDirective', '^parentDirective'], 
    link: function(scope, element, attr, ctrls) { 
     var childCtrl = ctrls[0]; 
     var parentCtrl = ctrls[1]; 
     ... 
    } 
}); 
+0

太棒了,謝謝@pixelbits! :) – boyomarinov