无法从指令到控制器进行通信。 AngularJS 1.6

Can't communicate from directive to controller. AngularJS 1.6

我需要对 AngularJS 项目做一些小改动。我有一个 .js 文件,第一行包含:

(function() { 'use strict';

angular.module( 'tableData' , [] )
  .controller('TableDataController', function( $scope, $routeParams, $window, $modal, $filter, $q, toastr, $document ) { 

此文件位于指令文件夹内。我想在一个函数内发出一个事件(当我点击一个按钮时触发,这部分正在使用 console.debug),它会被控制器捕获。

我试过用$on.$emit,但是我搞不定,所以我决定用$rootScope.$broadcast,但是如果我在[=中通过$rootScope(注入) 17=], AngularJS 显示错误提示未定义 rootScope。

如果我在控制器中执行,则不会发生。

有什么想法吗?

编辑:

如果我可以从一个文件调用一个函数到另一个文件,我就不需要触发事件。

我觉得注入应该是这样的:

(function() { 'use strict';
angular.module( 'tableData' , [] )
    .controller('TableDataController', ['$rootScope', '$scope', '$routeParams',
        '$window', '$modal', '$filter', '$q', 'toastr', '$document',
        function( $rootScope, $scope , $routeParams , 
            $window , $modal , $filter , $q , toastr, $document ) {}
])})();

你可以使用 $rootScope.$broadcast