依赖关系在Angular中将空模块注入控制器

时间:2015-05-02 22:23:25

标签: javascript angularjs dependency-injection

我正在尝试依赖注入另一个模块 - 前者只是一个空模块。

angular.module('module1', []);
angular.module('module2', [])
.controller('Module2Ctrl', ['module1', '$scope', function (module1, $scope) {
  $scope.expression = 'hello!';
}]);

HTML:

<html ng-app="module2">
  <body ng-controller="Module2Ctrl">
    <h1>{{expression}}</h1>
  </body>

</html>

我收到了可怕的Unknown provider: module1Provider <- module1 <- Module2Ctrl消息。

发生了什么事?我相信所有内容都应该被定义为 - 尽管module1没有定义,我无法找到任何可以阻止其工作的信息。

Plnkr:http://plnkr.co/edit/goMVFRNuPgG6iIpGYI1Y?p=preview

谢谢:-)

2 个答案:

答案 0 :(得分:1)

angular.module无法在controller内注入,只有一个angular.module可以在另一个模块中注入。

angular.module(&#39; module2&#39;,[&#39; module1&#39;])

你永远不应该那么棱角分明。只有角度组件可以注入,如服务,控制器,工厂,过滤器,提供商等。

要在页面上初始化角度,您可以执行angular.bootstrap

angular.bootstrap(document,["module2"])

答案 1 :(得分:1)

您注入提供者(例如工厂,服务......),而不是模块。删除module1注入,它将工作。你正在考虑做的事情可能是将module2声明为module1的模块依赖:

angular.module('module1', ['module2']);

然后ng-app="module"