我在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
,但是如果我在{{1}中通过了$rootScope
(注入) },AngularJS会显示一条错误消息,提示未定义rootScope。
如果我在控制器中执行此操作,则不会发生。
有什么主意吗?
如果可以将函数从调用到另一个文件,则无需触发事件。
答案 0 :(得分:0)
我认为注射应该是这样的:
(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