我非常喜欢Angular的菜鸟。而且我得到的错误是我无法弄清楚的(即使经过大量的Google搜索和摆弄)。
这是我的代码(和here it is on CodePen):
<!DOCTYPE html>
<html ng-app="ergo">
<title>Ergo</title>
</html>
<body ng-controller="ErgoController as ergo">
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular.min.js"></script>
<script>
( function() {
var app = angular.module( "ergo", [] );
app.controller( "ErgoController", function() {
// TODO
} );
} );
</script>
</body>
</html>
上面的代码会产生此错误:
Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.5/$injector/modulerr?p0=ergo&p1=Error%3A%20…ogleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.5%2Fangular.min.js%3A17%3A339)
(Here's a link到该错误消息的完整网址。)
网上的一些地方说,如果ngRoute模块无法加载,就会发生这种情况 - 它以前是Angular核心的一部分,但在1.2中被拆分为自己的模块。
现在,我没有在这个非常简单的页面中使用 ngRoute,所以我不明白这可能是什么问题 - 但是,嘿,我会试一试。这是我修改后的页面(以及the corresponding CodePen) - 我已经添加了另一个标记来加载ngRoute模块,还添加了&#39; ngRoute&#39;作为实例化我的模块时的依赖项:
<!DOCTYPE html>
<html ng-app="ergo">
<title>Ergo</title>
</html>
<body ng-controller="ErgoController as ergo">
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular-route.min.js"></script>
<script>
( function() {
var app = angular.module( "ergo", ['ngRoute'] );
app.controller( "ErgoController", function() {
// TODO
} );
} );
</script>
</body>
</html>
我仍然得到同样的错误。
帮助?前几天我做的几乎完全相同,而且工作正常。 (不幸的是,我没有那些代码方便检查。)
次要问题:如果您在加载其中任何一个页面后查看Chrome浏览器中的错误,您会发现堆栈跟踪中包含对此JavaScript文件的引用:
http://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular.js
这很奇怪,因为我在<script>
标记中实际加载的网址是:
http://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular.min.js
(一个网址包含.min
;另一个网址不包含)
我查看了网络控制台,看看angular.min.js是否动态加载angular.js(出于某些奇怪的原因),或者.min
网址只是重定向未经证实的版本。似乎都不是这样。那么,为什么控制台会显示一个JavaScript文件的引用,据我所知,甚至没有加载到这个页面上?
答案 0 :(得分:0)
看起来您没有调用设置角度应用的功能。
尝试调用该函数,你应该好好去:
<script>
(function() {
var app = angular.module( "ergo", ['ngRoute'] );
app.controller( "ErgoController", function() {
// TODO
} );
})();
</script>