首页 > 语言 > JavaScript > 正文

AngularJS基础学习笔记之控制器

2024-05-06 16:19:47
字体:
来源:转载
供稿:网友
在AngularJS中,控制器是一个Javascript函数(类型/类),用来增强除了根作用域意外的作用域实例的。当你或者AngularJS本身通过<code>scope.$new</code>俩创建一个新的子作用域对象时,有一个选项能让你将它当做参数传递给控制器。
 
 

AngularJS控制器用来控制AngularJS applications的数据。

  AngularJS控制器就是普通的JavaScript对象。

AngularJS控制器
  AngularJS applications通过控制器进行控制。

  ng-controller指令定义了一个application的控制器。

  一个控制器就是一个JavaScript对象,它可以通过标准的JavaScript对象构造函数来创建。

  1. <div ng-app="myApp" ng-controller="myCtrl"
  2.  
  3. First Name: <input type="text" ng-model="firstName"><br> 
  4. Last Name: <input type="text" ng-model="lastName"><br> 
  5. <br> 
  6. Full Name: {{firstName + " " + lastName}} 
  7.  
  8. </div> 
  9.  
  10. <script> 
  11. var app = angular.module('myApp', []); 
  12. app.controller('myCtrl'function($scope) { 
  13.   $scope.firstName = "John"
  14.   $scope.lastName = "Doe"
  15. }); 
  16. </script> 

代码解释:

  AngularJS application通过ng-app="myApp"来定义。该application的有效作用域处于ng-app所在的<div>中。

  ng-controller="myCtrl"属性即一个AngularJS指令,它定义了一个控制器。

  myCtrl函数是一个普通的JavaScript函数。

  AngularJS使用$scope对象来调用控制器。

  在AngularJS中,$scope是一个application对象(即application变量和函数的所有者)。

  控制器包含两个属性(或者叫变量):firstName和lastName。它们被附加到$scope对象上。

  ng-model指令将input标签的值绑定到控制器的属性上(firstName和lastName)。

控制器的方法
  上面的例子展示了控制器对象包含两个属性:lastName和firstName。

  控制器也可以包含方法(将函数赋值给变量):

  1. <div ng-app="myApp" ng-controller="personCtrl"
  2.  
  3. First Name: <input type="text" ng-model="firstName"><br> 
  4. Last Name: <input type="text" ng-model="lastName"><br> 
  5. <br> 
  6. Full Name: {{fullName()}} 
  7.  
  8. </div> 
  9.  
  10. <script> 
  11. var app = angular.module('myApp', []); 
  12. app.controller('personCtrl'function($scope) { 
  13.   $scope.firstName = "John"
  14.   $scope.lastName = "Doe"
  15.   $scope.fullName = function() { 
  16.     return $scope.firstName + " " + $scope.lastName; 
  17.   } 
  18. }); 
  19. </script> 

将控制器放在外部文件中
  在大型应用中,常常会将控制器代码写在外部文件中。

  将<script>标签中的代码拷贝到personController.js外部文件中:

  1. <div ng-app="myApp" ng-controller="personCtrl"
  2.  
  3. First Name: <input type="text" ng-model="firstName"><br> 
  4. Last Name: <input type="text" ng-model="lastName"><br> 
  5. <br> 
  6. Full Name: {{firstName + " " + lastName}} 
  7.  
  8. </div> 
  9.  
  10. <script src="personController.js"></script> 

另一个例子
  创建一个新的控制器文件并命名为namesController.js:

  1. angular.module('myApp', []).controller('namesCtrl'function($scope) { 
  2.   $scope.names = [ 
  3.     {name:'Jani',country:'Norway'}, 
  4.     {name:'Hege',country:'Sweden'}, 
  5.     {name:'Kai',country:'Denmark'
  6.   ]; 
  7. }); 

  然后再application中使用这个控制器文件:



  1. <div ng-app="myApp" ng-controller="namesCtrl"
  2.  
  3. <ul> 
  4.  <li ng-repeat="x in names"
  5.   {{ x.name + ', ' + x.country }} 
  6.  </li> 
  7. </ul> 
  8.  
  9. </div> 
  10.  
  11. <script src="namesController.js"></script> 
   

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选