模块不可用,但具有正确的模块名称并加载它

时间:2016-08-26 14:49:00

标签: angularjs dependency-injection

我对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)中注入?这是造成这种错误的原因吗?

1 个答案:

答案 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);