

angularJSで、あるコントローラーから他のコントローラー内にある特定の処理を実行させたいのですが、方法はあるのでしょうか？

例  
HTML側  
ng-clickでコントローラーAにあるsampleA()を呼び出し  
↓  
JS側  
コントローラーAのsampleAからコントローラーBのsampleB()を実行


CC BY-SA 3.0
2017-09-28T03:36:39.700
38250
2017-09-28T05:11:56.840
25556
question
angularjs
angularJSでコントロール間の操作について


`$rootScope`から`$broadcast`することで、`$rootScope`の子孫、つまりすべての`scope`に対してイベントを送れます。

[DEMO](http://plnkr.co/edit/JEIXXecDRbzlqTvafRbs?p=preview)

## Controller A

[code]

    myApp.controller('A', ['$scope','$rootScope', function($scope, $rootScope) {
      $scope.sampleA = function() {
        $rootScope.$broadcast('myevent');
      };
    }]);
    
[/code]

## Controller B

[code]

    myApp.controller('B', ['$scope', function($scope) {
      $scope.$on('myevent', function(event, ...args) {
        $scope.sampleB();
      });
      $scope.sampleB = function() {
        // 何かする
      }
    }]);
    
[/code]

参考  
<https://stackoverflow.com/questions/19446755/on-and-broadcast-in-angular>


CC BY-SA 3.0
2017-09-28T04:22:26.240
38253
2017-09-28T05:11:56.840
2017-09-28T05:11:56.840
20206
20206
38250
answer