AngularJs 基础教程 —— 控制器
本文为H5EDU机构官方HTML5培训教程,主要介绍:AngularJs基础教程——控制器
AngularJS控制器
AngularJS控制器控制AngularJS应用程序的数据。
AngularJS控制器是常规的JavaScript对象。
AngularJS控制器
AngularJS应用程序被控制器控制。
ng-controller指令定义了应用程序控制器。
控制器是JavaScript对象,由标准的JavaScript对象的构造函数创建。
AngularJS实例
<divng-app="myApp"ng-controller="myCtrl">
名:<inputtype="text"ng-model="firstName"><br>
姓:<inputtype="text"ng-model="lastName"><br>
<br>
姓名:{{firstName+""+lastName}}
</div>
<script>
varapp=angular.module('myApp',[]);
app.controller('myCtrl',function($scope){
$scope.firstname="John";
$scope.lastname="Doe";
});
</script>
尝试一下»
应用解析:
AngularJS应用程序由ng-app定义。应用程序在<div>内运行。
ng-controller="myCtrl"属性是一个AngularJS指令。用于定义一个控制器。
myCtrl函数是一个JavaScript函数。
AngularJS使用$scope对象来调用控制器。
在AngularJS中,$scope是一个应用象(属于应用变量和函数)。
控制器的$scope(相当于作用域、控制范围)用来保存AngularJSModel(模型)的对象。
控制器在作用域中创建了两个属性(firstName和lastName)。
ng-model指令绑定输入域到控制器的属性(firstName和lastName)。
控制器方法
上面的实例演示了一个带有lastName和firstName这两个属性的控制器对象。
控制器也可以有方法(变量和函数):
AngularJS实例
<divng-app="myApp"ng-controller="personCtrl">
名:<inputtype="text"ng-model="firstName"><br>
姓:<inputtype="text"ng-model="lastName"><br>
<br>
姓名:{{fullName()}}
</div>
<script>
varapp=angular.module('myApp',[]);
app.controller('personCtrl',function($scope){
$scope.firstname="John";
$scope.lastname="Doe";
$scope.fullName=function(){
return$scope.firstName+""+$scope.lastName;
}
});
</script>
尝试一下»
外部文件中的控制器
在大型的应用程序中,通常是把控制器存储在外部文件中。
只需要把<script>标签中的代码复制到名为personController.js的外部文件中即可:
AngularJS实例
<divng-app="myApp"ng-controller="personCtrl">
FirstName:<inputtype="text"ng-model="firstName"><br>
LastName:<inputtype="text"ng-model="lastName"><br>
<br>
FullName:{{firstName+""+lastName}}
</div>
<scriptsrc="personController.js"></script>
尝试一下»
其他实例
以下实例创建一个新的控制器文件:
angular.module('myApp',[]).controller('namesCtrl',function($scope){
$scope.names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}
];
});
保存文件为namesController.js:
然后,在应用中使用控制器文件:
AngularJS实例
<divng-app="myApp"ng-controller="namesCtrl">
<ul>
<ling-repeat="xinnames">
{{x.name+','+x.country}}
</li>
</ul>
</div>
<scriptsrc="namesController.js"></script>
尝试一下»AngularJs基础教程——控制器