【问题标题】:AngularJS Uncaught Error: [$injector:modulerr] -- noob hereAngularJS 未捕获的错误:[$injector:modulerr]——这里是菜鸟
【发布时间】:2017-07-21 07:57:55
【问题描述】:

我没有使用 ngRoute 或任何需要注入的 Angular 服务。我认为,我正在注入我自己的模块和控制器。但在控制台中仍然出现以下错误:

Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.5.7/$injector/modulerr?p0=try&p1=Error%3A%20%…2015%2520experiments%2Fangulartrial%2Fjs%2Flib%2Fangular.min.js%3A21%3A163)
at angular.min.js:6
at angular.min.js:40
at r (angular.min.js:7)
at g (angular.min.js:39)
at db (angular.min.js:43)
at c (angular.min.js:20)
at Bc (angular.min.js:21)
at ge (angular.min.js:19)
at angular.min.js:315
at HTMLDocument.b (angular.min.js:189)

代码: 索引.html:

<html ng-app="try" lang="En">
<head>
    <title>Learn Angular 1.5</title>
    <!-- <script src="./js/lib/jquery-3.1.0.min.js" charset="utf-8"></script> -->
    <script src='./js/lib/angular.min.js'></script>
    <script src='app.js'></script>
    <script src='./js/app/blog-list.module.js'></script>
    <script src='./js/app/blog-list.component.js'></script>

</head>
<body>
    <div class='' ng-controller = 'BlogListController'>
    </div>
</body>
</html>

app.js:

angular.module ('try', ['blogList'])
    //This works when I declare the controller right here
    // .controller('BlogListController', function(){
    //  console.log("Hello");
    // })

blog-list.module.js

'use strict';
//simply declare the module here 
angular.module('blogList', [
    //inject dependencies
    'BlogListController'
    ]);

blog-list.component.js

 //declare the controllers, components etc on the module here 
angular.module('blogList')
    .controller('BlogListController', function(){
        console.log("Hello");
    });

【问题讨论】:

  • 不要注入 BlogListController 控制器作为依赖项。从 blogList 模块中删除它可以解决问题
  • 你应该从blogList中删除BlogListController

标签: javascript angularjs angularjs-injector


【解决方案1】:

问题在这里 BlogListController 作为依赖,

angular.module('blogList', [
    //inject dependencies
    'BlogListController'
    ]);

改成,

angular.module('blogList', []);

从依赖项中移除 BlogListController

【讨论】:

    【解决方案2】:

    这是因为你的 HTML 没有使用 'blogList' 模块。将其更改为:

    <html ng-app="blogList" lang="En">
     ...
    </html>
    

    另外,您在声明模块时不要注入您的“BlogListController”。该数组用于依赖注入新创建的模块需要运行的外部模块

    (例如:ngRoute 是一个流行的模块,它不是“开箱即用”的,必须通过依赖注入来包含)

    【讨论】:

    • index.html 页面使用blogList 模块,作为try 模块的依赖项。但是 +1 指出问题在于将控制器注入到已经声明它的模块中。
    猜你喜欢
    • 2017-01-29
    • 2016-05-09
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    相关资源
    最近更新 更多