(AngularJS) 注入控制器时'ReferenceError: $scope is not defined'



我正在努力学习AngularJS。我有一个HTML页面,在那里我试图注入模块,但得到了一个错误

主js文件:

var classificationModule = angular.module('mainapp',[]);
classificationModule.controller('firstcontroll',function(){
    $scope.text="Goodday"
});

HTML页面:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <meta name="layout" content="main"/>
    <title>Classification Toolkit for Grails</title>          
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.js"></script>
    <asset:javascript src="main.js"/>        
</head>
<body >   
    <div ng-app='mainapp' ng-controller='firstcontroll'>
        Hello, {{text}}
    </div>   
</body>
</html>

得到以下错误:

ReferenceError: $scope is not defined

我不知道我做错了什么。

尝试在函数中传递$scope

var classificationModule = angular.module('mainapp', []);
classificationModule.controller('firstcontroll', function($scope) {
  $scope.text = "Goodday"
});
<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <meta name="layout" content="main" />
  <title>Classification Toolkit for Grails</title>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.js"></script>
  <asset:javascript src="main.js" />
</head>
<body>
  <div ng-app='mainapp' ng-controller='firstcontroll'>
    Hello, {{text}}
  </div>
</body>
</html>

您应该编写

var classificationModule = angular.module('mainapp', []);
classificationModule.controller('firstcontroll', function($scope) {
  $scope.text = "Goodday"
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='mainapp' ng-controller='firstcontroll'>
  Hello, {{text}}
</div>

$scope是angular JS的依赖注入系统提供的一个变量,基本上它通过将提供者与命名参数匹配来工作。

最新更新