Angular让控制器在同一个模块中协作

时间:2013-12-18 14:26:33

标签: angularjs

我有两个需要彼此功能的控制器。这两个控制器位于相同的“控制器模块”中。

我的问题是function A()内的ControllerA如何调用function B()内的ControllerB

希望有人可以帮助我,

1 个答案:

答案 0 :(得分:2)

它不应该使用服务或事件。

Events

angular.controller('a', [
  '$scope',
  function ($scope) {
    $scope.$broadcast('something', 'with this', 'and this argument');
  }
]);

angular.controller('b', [
  '$scope',
  function ($scope) {
    $scope.$on('something', handleSomething);

    function handleSomething () {
    }
  }
]);

Service

angular.factory('a', [
  function () {
    return {}; // this is the API
  }
]);

angular.controller('b', [
  'a',
  function (a) {
    a.thing = 'value'; // methods would be preferrable.
  }
]);

angular.controller('c', [
  'a', '$log',
  function (a, $log) {
    $log.info(a.thing);
  }
]);