首页 > 网站 > WEB开发 > 正文

AngularJS快速入门指南05:控制器

2024-04-27 14:09:40
字体:
来源:转载
供稿:网友

AngularJS快速入门指南05:控制器

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

  AngularJS控制器就是普通的javaScript对象


AngularJS控制器

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

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

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

<div ng-app="myApp" ng-controller="myCtrl">First Name: <input type="text" ng-model="firstName"><br>Last Name: <input type="text" ng-model="lastName"><br><br>Full Name: {{firstName + " " + lastName}}</div><script>var app = angular.module('myApp', []);app.controller('myCtrl', function($scope) {    $scope.firstName = "John";    $scope.lastName = "Doe";});</script>

运行

代码解释:

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

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

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

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

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

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

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


控制器的方法

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

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

<div ng-app="myApp" ng-controller="personCtrl">First Name: <input type="text" ng-model="firstName"><br>Last Name: <input type="text" ng-model="lastName"><br><br>Full Name: {{fullName()}}</div><script>var app = 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外部文件中:

<div ng-app="myApp" ng-controller="personCtrl">First Name: <input type="text" ng-model="firstName"><br>Last Name: <input type="text" ng-model="lastName"><br><br>Full Name: {{firstName + " " + lastName}}</div><script src="personController.js"></script>

运行


另一个例子

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

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

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

<div ng-app="myApp" ng-controller="namesCtrl"><ul>  <li ng-repeat="x in names">    {{ x.name + ', ' + x.country }}  </li></ul></div><script src="namesController.js"></script>

运行

上一章 - AngularJS快速入门指南04:指令下一章 - AngularJS快速入门指南06:过滤器


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