【问题标题】:AngularJS Beginner is not a function, got undefinedAngularJS Beginner 不是函数,未定义
【发布时间】:2014-12-17 09:14:59
【问题描述】:
<html>
    <head>
    <script type="text/javascript" src="resources/js/angular.js"></script>
    <script type="text/javascript" src="resources/js/app.js"></script>
    </head>
    <body ng-app>

    <div ng-controller="DatumCtrl">
        <p>{{datum}}</p>
    </div>
    </body>
    </html>

app.js:

var DatumCtrl = function($scope) {
    $scope.datum = new Date();
};

这样我得到一个错误:

“错误:[ng:areq] 参数 'DatumCtrl' 不是函数,未定义。

我从一篇关于 AngularJS 的介绍性文章中复制了 tis 代码,并且之前没有使用 AngularJS 的经验。

【问题讨论】:

  • 您的代码中似乎几乎没有任何内容,您是否遵循任何角度教程?
  • 从 Angular v1.3 开始,您不能拥有全局控制器。所以我猜你下载了最新的角度版本,但你的教程使用了一些 1.2.x 版本,你的代码可以正常工作。提示:放弃该教程并找到一个最新的

标签: javascript angularjs


【解决方案1】:

要拥有控制器,您需要先拥有模块:

var app = angular.module('MyApp',[]);

并使用:ng-app="MyApp"

【讨论】:

    【解决方案2】:

    此代码示例来自 Scot Allen 的 Controller Basics Tutorial,它会抛出类似

    的异常

    "错误:[ng:areq] 参数 'MainController' 不是函数,得到 未定义

    所以从 v1.3 开始你就不能拥有全局控制器了

    index.html

    <!DOCTYPE html>
    <html ng-app>
    
    <head>
      <script data-require="angular.js@1.3.6" data-semver="1.3.6" src="https://code.angularjs.org/1.3.6/angular.js"></script>
      <link href="style.css" rel="stylesheet" />
      <script src="script.js"></script>
      <title>{{ 55 * 2}}</title>
    </head>
    
    <body ng-controller="MainController">
      <h1> {{message}}</h1>
    </body>
    
    </html>
    

    v1.3 之前的 script.js

    var MainController = function($scope){
      $scope.message = "Hello I am Angular";
    };
    

    v1.3 之后的script.js

    angular.module('controllerExample', [])
      .controller('MainController', ['$scope', MainController]);
    
    function MainController($scope){
      $scope.message = "Hello I am Angular";
    }
    

    在你的 index.html 中

    <html ng-app="controllerExample">
    

    see Plunker with solved example

    【讨论】:

      猜你喜欢
      • 2012-10-23
      • 1970-01-01
      • 2023-04-08
      • 2015-03-13
      • 1970-01-01
      • 1970-01-01
      • 2015-04-01
      • 2013-10-24
      • 2016-11-12
      相关资源
      最近更新 更多