刚开始学习AngularJS,跟着教程写了一个简单的例子
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<!--我们有了一个控制器,它初始化了一个 $scope对象,并且有一个name属性。当我们把该控制器关联到DOM节点上,模板就可以通过数据绑定来读取它:-->
<body data-ng-app="hello" data-ng-controller="helloCtrl">
<input type="text" data-ng-model="name" />
<p data-ng-bind="name">你好</p>
</body>
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
<script type="text/javascript">
//定义了一个非常简单的控制器构造函数:helloCtrl,我们在该控制器所创建的 scope 中添加一个 name 属性:
var helloCtrl=function($scope){
$scope.name="世界";
}
</script>
</html>
然后发现,当在文本框中输入数据时,下面的p标签并没有相应的显示,按f12进行调试,看控制台Console:
然后百度,发现从Angular-1.3.0 beta15开始,Angular不再支持全局的Controller。
在一个实际的应用程序中,在 Angular模块 下通过 .controller
为你的应用创建控制器,如下所示:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body data-ng-app="hello" data-ng-controller="helloCtrl">
<input type="text" data-ng-model="name" />
<p data-ng-bind="name">你好</p>
</body>
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
<script type="text/javascript">
var app=angular.module('hello',[]);
app.controller('helloCtrl',function($scope){
$scope.name="世界";
});
</script>
</html>
运行结果如图: