【问题标题】:i am getting error like this in angular js Uncaught Error: [$injector:modulerr]我在 angular js Uncaught Error: [$injector:modulerr] 中遇到这样的错误
【发布时间】:2016-07-29 19:13:02
【问题描述】:

我在 Angular JS 收到错误时遇到问题:未捕获错误:[$injector:modulerr]。我的 JS 文件看起来

这是我的应用 js

var app = angular.module(' myApp', ['ngRoute']);
app.config(["$routeProvider", function($routeProvider) {
$routeProvider

.state('home', {
    url: '/home',
    abstract: true,
    templateUrl: 'templates/home.html',
    controller: 'homeCtrl'
    });
otherwise('/home');
}]);

这是我的索引页

 <div ng-app="myApp">
  <div ng-view></div>
 </div>
 
 <script src="js/angular.min.js"></script>
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>
 <script type="text/javascript" src="lib/controller.js"></script>
 <script type="text/javascript" src="lib/app.js"></script>
 <script type="text/javascript" src="lib/directives.js"></script>

这是我的控制器 js

  var app = angular.module('myApp',[]);                                  
  app.controller('homeCtrl', function($scope) 
  {
        $scope.names = [{nickname:'n',fullname:'nakama'}];
  });

这是我的主页

 <div>
 <ul>
  <li ng-repeat="x in names">
     {{x.nickname + '<-means->' + x.fullname}}
  </li>
 </ul>
 </div>

【问题讨论】:

  • 在您的controller.js 之前加载您的app.js 文件
  • 感谢 CozyAzure 兄弟,它成功了

标签: javascript angularjs


【解决方案1】:

controller.js 之前加载您的app.js

 <script src="js/angular.min.js"></script>
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>
 <!--Load this first-->
 <script type="text/javascript" src="lib/app.js"></script>
 <script type="text/javascript" src="lib/controller.js"></script>
 <script type="text/javascript" src="lib/directives.js"></script>

【讨论】:

    【解决方案2】:

    在你的控制器js中

    var app = angular.module('myApp',[]); 
    

    这意味着你想开始一个新的模块。 改成

    var app = angular.module('myApp'); 
    

    注意,[] 已被删除;

    这种方式 angular 返回现有的 myApp 模块

    还有:

    在你的 html 中将 app.js 移到 controller.js 之前

    【讨论】:

      【解决方案3】:

      你需要在controller.js之前加载app.js

      并且在控制器文件中,不要再次实例化相同的模块

      var app = angular.module('myApp',[]); // remove [] from here.
      

      希望对你有帮助。

      干杯

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-29
        • 1970-01-01
        • 2017-04-10
        • 1970-01-01
        • 2014-01-29
        • 1970-01-01
        相关资源
        最近更新 更多