我对AngularJS中的依赖注入很困惑。最近,我遇到了一个我无法解决的错误。我怀疑在依赖注入中存在一些误解和误用。 这是我的代码:
In file A.js
var CustomerModel = angular.module('myCustomer',['ngResource','LoginController']);
In file B.js
CustomerModel
.controller('LoginController', LoginController);
我的错误是:
未捕获错误:[$ injector:modulerr]由于以下原因无法实例化模块myCustomer: 错误:[$ injector:modulerr]由于以下原因导致无法实例化模块LoginController: 错误:[$ injector:nomod]模块'LoginController'不可用!您要么错误拼写了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。
根据问题和错误,我提出了一个问题。控制器(LoginController)是否可以在angularJS中的模块(myCustomer)中注入?这是造成这种错误的原因吗?
答案 0 :(得分:3)
LoginController
不是模块。它只是一个控制器,所以你不需要依赖那个控制器。只需删除它:
// only lay dependency on other angular modules
// angular modules are the ones that are registered as 'angular.module('module name', [deps or empty array])'
var CustomerModel = angular.module('myCustomer', [
'ngResource',
]);
// register the controller, not a module
CustomerModel
.controller('LoginController', LoginController);