Angular JS 错误 angular.js:38Uncaught 错误:[$injector:modulerr]

Posted

技术标签:

【中文标题】Angular JS 错误 angular.js:38Uncaught 错误:[$injector:modulerr]【英文标题】:Angular JS error angular.js:38Uncaught Error: [$injector:modulerr] 【发布时间】:2017-04-10 11:20:59 【问题描述】:

在加载我的 index.html 时,我遇到了这个错误

index.html

<html>
<head>Testing
<script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js" ></script>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope,$http) 
   $scope.submit= function()
var data = 
  book:             
    author: $scope.author,
    title : $scope.title,
    body : $scope.body
  


$http.post("/", data).success(function(data, status) 
    console.log('Data posted successfully');
)
   
);
</script>
</head>

<body ng-app="myApp">    
  <div ng-controller="myCtrl">
    <form>
      Author:
      <input type="text" ng-model="author">
      <br>
      <br> Title:
      <input type="text" ng-model="title">
      <br>
      <br> Body:
      <input type="author" ng-model="body">
      <br>
      <br>
      <input type="submit" value="Submit" ng-click="submit()">
    </form>
  </div>  
</body>
</html>

我在我的 node.js 代码上运行它

server.js

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var path = require('path');


app.use(express.static(__dirname + './public'));
app.use(express.static(path.join(__dirname, 'public')));
app.use(bodyParser.urlencoded( extended: true )); 
app.use(bodyParser.json());


app.get('/', function(req, res)
  res.sendFile(__dirname +'/index.html');
);

app.post('/', function(req,res)
    console.log(req.body)
    res.sendFile(__dirname +'/index1.html');
);

console.log('server running at 3000!')
app.listen(3000);

我正确获取 index.html,但在 google chrome 检查中显示错误

angular.js:38未捕获错误:[$injector:modulerr] http://errors.angularjs.org/1.5.6/$injector/modulerr?p0=myApp&p1=Error%3A%2…ogleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.5.6%2Fangular.min.js%3A21%3A332)

【问题讨论】:

我认为你必须加载javascript库文件,请检查 嘿 Ashish 我应该加载哪个 javascript 文件? 我已经包含了 angular.min.js @AshishPatel jQuery?我没有在我的代码中使用它 【参考方案1】:

您的代码在我们的机器上运行良好。

正如你在一条评论中所说,你总是得到旧文件,它应该是cache problem

如果是缓存问题,在chrome清除缓存

1) Open Chrome.
2) On your browser toolbar, tap More .
3) Tap History, and then tap Clear browsing data.
4) Under "Clear browsing data," select the checkboxes for Cookies and site data and Cached images and files.
5) Use the menu at the top to select the amount of data that you want to delete. ...
6) Tap Clear browsing data.

如果你想从代码中移除缓存视图。

app.run(function($rootScope, $templateCache) 
    $rootScope.$on('$routeChangeStart', function(event, next, current) 
        if (typeof(current) !== 'undefined')
            $templateCache.remove(current.templateUrl);
        
    );
);

Here is a link where you get these sort of answers.

你也可以,

1) Open your browser console
2) Go to network tab
3) Refresh the page
4) While refreshing, right click on network tab and click on, clear browser cookies, then press alt+f5

【讨论】:

我已经尝试过所有旧数据都被我的密码删除了,但浏览器仍然会以某种方式加载我的旧文件 旧文件是什么意思? htmldata? 旧的html和js文件 打开浏览器控制台,进入网络标签,刷新页面,刷新时右键network tab,点击clear browser cookies,然后按alt+f5 好的太好了,每次遇到缓存问题时,请尝试上面评论中的步骤。【参考方案2】:

只需在 angular.js 脚本行之后添加这一行:

<script src="https://code.jquery.com/jquery-2.2.4.js"></script>

它会起作用的..

【讨论】:

【参考方案3】:

同样的代码在这里工作

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) 
  $scope.submit = function() 
    var data = 
      book: 
        author: $scope.author,
        title: $scope.title,
        body: $scope.body
      
    

    $http.post("/", data).success(function(data, status) 
      console.log('Data posted successfully');
    )
  
);
<!DOCTYPE html>
<html>

<head>
  <script  src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js"></script>


  <script src="script.js"></script>
</head>


<body ng-app="myApp">    
  <div ng-controller="myCtrl">
    <form>
      Author:
      <input type="text" ng-model="author">
      <br>
      <br> Title:
      <input type="text" ng-model="title">
      <br>
      <br> Body:
      <input type="author" ng-model="body">
      <br>
      <br>
      <input type="submit" value="Submit" ng-click="submit()">
    </form>
  </div>  
</body>
 

</html>

【讨论】:

这个答案没有意义,您应该在评论中添加 plunkr,并要求 OP 提供更多输入 @sajeetharan 这是否意味着我应该尝试使用另一个名为 script.js 的文件 @AbhishekParikh 没必要看这里jsfiddle.net/sajeetharan/tc6z0r66 @AbhishekParikh 检查您的 Angular 脚本文件是否已加载到网络选项卡中 找到 200 个文件 Angular.min.js

以上是关于Angular JS 错误 angular.js:38Uncaught 错误:[$injector:modulerr]的主要内容,如果未能解决你的问题,请参考以下文章

angular.js 和 require.js 得到未捕获的错误:[$injector:modulerr]

在 POST 上出现 404 错误。 Angular.js

Spring,Angular.js 415 不支持的媒体类型错误

跨域ajax调用失败-Angular.js节点js + express

当表单出现错误时,带有 angular.js 表单提交的 Django 不起作用

显示错误 angular.js:12477 TypeError: $(...).intlTelInput is not a function