Javascript 布拉德·格林的第一个例子';"一书";AngularJS“;他犯了一个错误
它看起来很简单,但不起作用:Javascript 布拉德·格林的第一个例子';"一书";AngularJS“;他犯了一个错误,javascript,angularjs,Javascript,Angularjs,它看起来很简单,但不起作用: <html ng-app> <head> <script type="text/javascript" src="lib/angular.js"></script> <script type="text/javascript"> function HelloController($scope) { $scope.greeting = { text: 'Hell
<html ng-app>
<head>
<script type="text/javascript" src="lib/angular.js"></script>
<script type="text/javascript">
function HelloController($scope) {
$scope.greeting = { text: 'Hello' };
}
</script>
</head>
<body>
<div ng-controller='HelloController'>
<p>{{greeting.text}}, World</p>
</div>
</body>
</html>
在控制台中:
Error: [ng:areq] Argument 'HelloController' is not a function, got undefined
http://errors.angularjs.org/1.3.0/ng/areq?p0=HelloController&p1=not%20a%20function%2C%20got%20undefined
at http://localhost:8080/lib/angular.js:80:12
at assertArg (http://localhost:8080/lib/angular.js:1610:11)
at assertArgFn (http://localhost:8080/lib/angular.js:1620:3)
at http://localhost:8080/lib/angular.js:8319:9
at http://localhost:8080/lib/angular.js:7496:34
at forEach (http://localhost:8080/lib/angular.js:343:20)
at nodeLinkFn (http://localhost:8080/lib/angular.js:7483:11)
at compositeLinkFn (http://localhost:8080/lib/angular.js:6991:13)
at compositeLinkFn (http://localhost:8080/lib/angular.js:6994:13)
at compositeLinkFn (http://localhost:8080/lib/angular.js:6994:13)
不明白为什么。。。除了可能是因为我使用了AngularJS v1.3.0?是的,这是因为1.3.0。将中断更改描述为: $controller将不再在窗口上查找控制器。在窗口中查找控制器的旧行为最初用于示例、演示和玩具应用程序。我们发现允许全局控制器功能会鼓励不良做法,因此我们决定在默认情况下禁用此行为 变更日志继续解释,您可以通过以下方式重新启用“全局”功能方法: 虽然不建议您这样做,但您可以像这样重新启用旧行为:
是的,这是因为1.3.0。将中断更改描述为: $controller将不再在窗口上查找控制器。在窗口中查找控制器的旧行为最初用于示例、演示和玩具应用程序。我们发现允许全局控制器功能会鼓励不良做法,因此我们决定在默认情况下禁用此行为 变更日志继续解释,您可以通过以下方式重新启用“全局”功能方法: 虽然不建议您这样做,但您可以像这样重新启用旧行为:
是的,这是AngularJS 1.3.0的问题。另一种绕过它的方法(可能更简单更安全)是显式地包含AngularJS的旧版本。例如:
是的,这是AngularJS 1.3.0的一个问题。另一种绕过它的方法(可能更简单更安全)是显式地包含AngularJS的旧版本。例如:
在Angular 1.4中,这是工作解决方案:
index.html
<!DOCTYPE html>
<html ng-app="testApp">
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.js"></script>
<script src="controllers.js"></script>
</head>
<body>
<div ng-controller='HelloController'>
<input ng-model='greeting.text'>
<p>{{greeting.text}}, World</p>
</div>
</body>
</html>
在第1.4节中,这是工作解决方案: index.html
<!DOCTYPE html>
<html ng-app="testApp">
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.js"></script>
<script src="controllers.js"></script>
</head>
<body>
<div ng-controller='HelloController'>
<input ng-model='greeting.text'>
<p>{{greeting.text}}, World</p>
</div>
</body>
</html>
不确定v1.3.0,但是。不确定v1.3.0,但是。这是一个更好的解决方案,如果你按照书去做,按照书去做,这是一个更好的解决方案,如果你按照书去做,按照书去做
<!DOCTYPE html>
<html ng-app="testApp">
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.js"></script>
<script src="controllers.js"></script>
</head>
<body>
<div ng-controller='HelloController'>
<input ng-model='greeting.text'>
<p>{{greeting.text}}, World</p>
</div>
</body>
</html>
var testApp = angular.module('testApp', []);
testApp.controller('HelloController', function ($scope) {
$scope.greeting = { text: 'Hello' };
});