我很陌生。看了不同的例子,但仍然无法弄清楚我的代码有什么问题
的index.html
<html ng-app="main">
<head>
<script src="angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="MainController">
{{3 + 2}}
</body>
</html>
app.js
(function() {
angular.module("main", [])
.controller("MainController", MainController);
var MainController = function($scope) {
$scope.message = "Hello Angular!";
};
}());
答案 0 :(得分:2)
如果您打开控制台(Chrome中为Ctrl-Shift-I
),您很可能会看到一条错误消息,其中包含http://errors.angularjs.org/1.4.2/ng/areq?p0=MainController&p1=not%20a%20function%2C%20got%20undefined
这样的网址
Argument&#39; MainController&#39;不是一个功能,未定义
因此,您可以将移动var MainController = function($scope)...
更改为顶部以在controller
函数中使用它之前定义它,或者将其更改为函数定义function MainController($scope)...
,该函数定义将被提升到顶部
如今,Controller as方法更受欢迎。因此,请查看此plunker以查看您的示例已重新设计。祝AngularJs好运,这很有趣=)
答案 1 :(得分:2)
'MainController'未定义,因为它在声明之前调用。
解决方案:在调用之前声明'MainController'。
(function() {
var MainController = function($scope) {
$scope.message = "Hello Angular!";
};
angular.module("main", [])
.controller("MainController", MainController);
}());
答案 2 :(得分:1)
您应在创建模块之前放置MainController
定义