【问题标题】:angular.js:38 Uncaught Error: [$injector:modulerr]angular.js:38 未捕获的错误:[$injector:modulerr]
【发布时间】:2017-05-15 14:19:52
【问题描述】:

我不断收到此错误:

angular.js:38 Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.6.4/$injector/modulerr?p0=sport1Feed&p1=Error…ogleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.6.4%2Fangular.min.js%3A22%3A179)
    at angular.js:38
    at angular.js:4920
    at q (angular.js:403)
    at g (angular.js:4880)
    at eb (angular.js:4802)
    at c (angular.js:1914)
    at Sc (angular.js:1935)
    at ue (angular.js:1820)
    at angular.js:33367
    at HTMLDocument.b (angular.js:3431)

我的应用程序是在 html 中定义和调用的,与我的控制器相同。我在这里做错了什么?

app.js:

var app = angular.module('testApp', ['ngAnimate', 'ngSanitize', 'ui.bootstrap','ui.router']);

ctrl.js:

app.controller('feedCtrl', function($scope, $http) {
    $http.get('https://api.myjson.com/bins/13vg19').then(function(res) {
        $scope.res = res.data;
        console.log($scope.res);
    });
});

html:

<!DOCTYPE html>
<html ng-app="testApp">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>My AngularJS App</title>
  <meta name="description" content="">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="app.css">
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
  <script src="./components/app/app.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.1/angular-material.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/1.0.3/angular-ui-router.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-sanitize/1.6.4/angular-sanitize.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/x2js/1.2.0/xml2json.js"></script>
  <script src="./components/controller/ctrl.js"></script>
</head>
<body>

<div data-ng-controller="feedCtrl">

</div>

</body>
</html>

这里的错误到底是什么?我尝试将ng-app 放在body 标签中,结果相同。可以看到,在 angular 库之后调用了 app.js。

谢谢。

编辑:我刚刚在控制台中注意到,在网络下,对https://api.myjson.com/bins/13vg19 的请求根本没有被调用。

【问题讨论】:

    标签: javascript jquery html angularjs json


    【解决方案1】:

    加载所有依赖引用后加载app.js,你的顺序应该是

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.1/angular-material.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/1.0.3/angular-ui-router.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-sanitize/1.6.4/angular-sanitize.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/x2js/1.2.0/xml2json.js"></script>
      <script src="./components/app/app.js"></script>
      <script src="./components/controller/ctrl.js"></script>
    

    【讨论】:

    • 您需要包含引导和角度动画的参考
    【解决方案2】:

    这个问题意味着 Angular 无法将模块注入您的应用程序。原因可能是您没有在 HTML 中导入它们或版本不匹配(例如导入 anguler 版本 x 和 angular-animate 版本 y)。一般来说,在 Angular 异常消息中通常包含指向 Angular 网站的链接,该链接可以更好地以纯文本形式解释问题。

    正如我所看到的,您在导入必要的 Angular 文件之前导入了 js 文件,而您根本没有导入 angular-animate 和 ui.bootstrap。

    【讨论】:

      猜你喜欢
      • 2015-11-16
      • 2019-01-31
      • 2014-10-25
      • 2017-03-17
      • 1970-01-01
      • 2018-12-19
      • 2014-09-28
      • 2017-06-14
      相关资源
      最近更新 更多