2013-04-06 71 views
5

我最近看到這個例子。這是我第一次在指令中看到一個控制器。這是一個正常的事情。我以爲你應該保持這兩個不同領域的可測性:你爲什麼要把控制器放在AngularJS的指令中?

myModule.directive('myComponent', function(mySharedService) { 
    return { 
     restrict: 'E', 
     controller: function($scope, $attrs, mySharedService) { 
      $scope.$on('handleBroadcast', function() { 
       $scope.message = 'Directive: ' + mySharedService.message; 
      }); 
     }, 
     replace: true, 
     template: '<input>' 
    }; 
}) 
+0

的'的角度主頁上tabs'指令(請參閱創建組件,components.js標籤)的控制器,從而使'pane'指​​令可以可以訪問選項卡的$ scope(更多信息,請參閱http://stackoverflow.com/questions/11605917/this-vs-scope-in​​-angularjs-controllers/14168699#14168699)。另請參見[控制器和指令中的鏈接函數之間的區別](http://stackoverflow.com/questions/12546945/difference-between-the-controller-and-link-functions-when-defining-an-angula/12570008# 12570008)。 – 2013-04-06 16:07:02

回答

5

一般情況下,你會使用控制器的指令能夠指令之間的分享,在元素上。它允許指令輕鬆地在它們之間交流。

在這裏看到的是如何工作的一個很好的解釋:http://egghead.io/video/angularjs-directive-to-directive-communication/

+0

謝謝,這段視頻很明顯。 AngularJS學到了一件更有力的事情。最令人驚歎的JS框架,喜歡它! – kfis 2013-04-06 17:11:05

+0

@kfis整個系列都很棒,爲我做了很多! – 2013-04-07 13:25:36

相關問題