2013-04-06 4 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)。 –

答えて

5

一般的に、あなたは、要素の上に、ディレクティブの間でそれらを共有できるようにするディレクティブでコントローラを使用すると思います。ディレクティブ間で簡単にコミュニケーションを取ることができます。

これがどのように動作するかの偉大な説明についてはこちらをご覧ください:http://egghead.io/video/angularjs-directive-to-directive-communication/

+0

ありがとう、このビデオは明らかにenlightingしていた。 AngularJSについてもう一つの強力なことが学びました。最も驚くべきJSフレームワーク、それを愛する! – kfis

+0

@kfis全体のシリーズは素晴らしいです、私は大したでした! –

関連する問題