Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
注入控制器为空对象提供AngularJS_Angularjs - Fatal编程技术网

注入控制器为空对象提供AngularJS

注入控制器为空对象提供AngularJS,angularjs,Angularjs,我有一个AngularJS应用程序,我正在尝试测试。问题是,每当我尝试注入控制器时,它都会给我一个空对象 beforeEach( inject(function($rootScope, $controller) { console.log($controller) // {} scope = $rootScope.$new(); ctrl = $controller('MenuCtrl', { $scope: scope }); console.log(c

我有一个AngularJS应用程序,我正在尝试测试。问题是,每当我尝试注入控制器时,它都会给我一个空对象

beforeEach( inject(function($rootScope, $controller) {
   console.log($controller) // {}
   scope = $rootScope.$new();
   ctrl = $controller('MenuCtrl', {
     $scope: scope
   });
   console.log(ctrl) // {}
}));
我已经在JSFIDLE中附上了我的设置示例和一些注释,我非常感谢您的帮助

编辑:我也尝试过这样做:

每个之前(angular.mock.module('Controllers')

然后我得到: 错误:没有模块:控制器

这解决了这个问题:

每个之前(angular.mock.module('controllers')

根据您的代码

var Controllers = angular.module('controllers', []);
您的测试配置

beforeEach(angular.mock.module('Controllers'));
应该是

beforeEach(angular.mock.module('controllers'));

使用小写字母“C”,因为这是此模块的实际名称。您也可以使用
myApp
,因为它依赖于
控制器

,这要感谢Peter Bacon Darwin的帮助 为了找到解决办法。我试图在控制器上调用
changeView()
。但是,具有此功能的是作用域,而不是控制器


再次感谢。

啊,当然。这修复了无模块控制器的问题,但我仍然得到一个空的$Controller