【发布时间】:2018-08-01 06:56:04
【问题描述】:
我必须在 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,但是如果我在.controller('TableDataController', function( $rootScope, ... ) 中传递$rootScope(注入),AngularJS 会显示一个错误,告诉你rootScope 未定义。
如果我在控制器中这样做就不会发生。
有什么想法吗?
编辑:
如果我可以从一个文件调用一个函数到另一个文件,我就不需要触发事件。
【问题讨论】:
-
发布更多代码。您对此的要求不是很清楚
-
我认为有一个错字,也许你使用了
rootScope而不是$rootScope。或者,如果您有正确的注入,您忘记添加它:TableDataController.$inject = ["$rootScope", ...] -
问题不清楚。您想解决 $scope/$rootScope 发出事件的问题吗?或者你想在没有 $scope/$rootScope 事件的情况下从指令到控制器进行通信?当询问有关由您的代码引起的问题的问题时,如果您提供人们可以用来重现问题的代码,您将获得更好的答案。该代码应该是…… 完整 – 提供重现问题所需的所有部分。 包括指令的代码。还包括使用该指令的 HTML 示例。
标签: angularjs angularjs-directive angularjs-controller