无法从指令到控制器进行通信。 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
我需要对 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