一尘不染

AngularJS错误:“参数'FirstCtrl'不是函数,未定义”

angularjs

我注意到在这里问了几次同样的问题,我尝试过解决这个问题,但是没有帮助。

我正在学习带蛋头视频的本教程。

但是,当我进入“控制器和控制器之间共享数据”部分时,我无法正常工作。

当我使用Chrome运行它时,在控制台中出现此错误:

“参数“ FirstCtrl”不是函数,未定义”。

我真的不知道怎么了 代码与教程中的相同。

的HTML

<!DOCTYPE html>
<html ng-app>
 <head>
    <title>AngularJS Tutorials: Controllers</title>
    <link rel="stylesheet" href="mystyle.css">
    <script src="http://code.angularjs.org/1.2.0-rc.2/angular.min.js"></script>
 </head>
 <body>
    <div ng-app="">
       <div ng-controller="FirstCtrl">   
           <h1> {{data.message + " world"}}</h1>

           <div class="{{data.message}}">
               Wrap me in a foundation component
           </div>
       </div>
    </div>
    <script type="text/javascript" src="main.js"></script>
 </body>
</html>

main.js

function FirstCtrl($scope){
   $scope.data = { message: "Hello" };
}

阅读 156

收藏
2020-07-04

共1个答案

一尘不染

ng-app的html中有2个未命名的指令。
在您的div中丢掉一个。

更新
让我们尝试另一种方法。
在您的js文件中定义一个模块,并为其分配ng-app指令。之后,将控制器定义为ng组件,而不是简单的功能:

<div ng-app="myAppName">  
<!-- or what's the root node of your angular app -->

和js部分:

angular.module('myAppName', [])
    .controller('FirstCtrl', function($scope) {
         $scope.data = {message: 'Hello'};
    });

这是一个在线演示,它就是这样做的:http :
//jsfiddle.net/FssbL/1/

2020-07-04