What’s the correct way to communicate between controllers in AngularJS?

What’s the correct way to communicate between controllers? I’m currently using a horrible fudge involving window: function StockSubgroupCtrl($scope, $http) { $scope.subgroups = []; $scope.handleSubgroupsLoaded = function(data, status) { $scope.subgroups = data; } $scope.fetch = function(prod_grp) { $http.get(‘/api/stock/groups/’ + prod_grp + ‘/subgroups/’).success($scope.handleSubgroupsLoaded); } window.fetchStockSubgroups = $scope.fetch; } function StockGroupCtrl($scope, $http) { … $scope.select = function(prod_grp) { … Read more