2

私は次のものを持っています:

<div data-ng-controller="Controller1">
   <div class="button" 
        data-ng-click="action2()">
   </div>
</div>

<div data-ng-controller="Controller2">

</div>
angular.module('test')
   .controller('QuestionsStatusController1',
    ['$rootScope', '$scope',
    function ($rootScope, $scope) {

    }]);

angular.module('test')
   .controller('QuestionsStatusController2',
    ['$rootScope', '$scope',
    function ($rootScope, $scope) {

         // I need some way to receive the action2()

    }]);

HTML をクリックしてController1メソッドを起動させる方法はありますかController2。これらのコントローラーのいずれにも親コントローラーがないことに注意してください。それは私が使用しているという事実によるものですui-router

4

1 に答える 1

3
angular.module('test')
    .controller('QuestionsStatusController1',
    ['$rootScope', '$scope', '$resource', '$state',
    function ($rootScope, $scope, $resource, $state) {

        $scope.action2 = function() {
            $rootScope.$broadcast('action2@QuestionStatusController1');
        }

    }]);

angular.module('test')
   .controller('QuestionsStatusController2',
   ['$rootScope', '$scope', '$resource', '$state',
   function ($rootScope, $scope, $resource, $state) {

    $rootScope.$on('action2@QuestionStatusController1', function {
         //write your listener here
    })

   }]);
于 2013-09-17T17:27:04.793 に答える