功能未定义。基本程序

时间:2015-07-18 04:38:54

标签: javascript angularjs

我很陌生。看了不同的例子,但仍然无法弄清楚我的代码有什么问题

的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!";
    };
}());

3 个答案:

答案 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定义