AngularJS入门教程之控制器详解
angularjs 控制器
angularjs 控制器 控制 angularjs 应用程序的数据。
angularjs 控制器是常规的 javascript 对象。
angularjs 控制器
angularjs 应用程序被控制器控制。
ng-controller 指令定义了应用程序控制器。
控制器是 javascript 对象,由标准的 javascript 对象的构造函数 创建。
angularjs 实例
<!doctype html> <html> <head> <meta charset="utf-8"> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> </head> <body> <div ng-app="myapp" ng-controller="personctrl"> 名: <input type="text" ng-model="firstname"><br> 姓: <input type="text" ng-model="lastname"><br> <br> 姓名: {{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> </body> </html>
运行结果:
名:
姓:
姓名: john doe
angularjs 应用程序由 ng-app 定义。应用程序在 <div> 内运行。
ng-controller="myctrl" 属性是一个 angularjs 指令。用于定义一个控制器。
myctrl 函数是一个 javascript 函数。
angularjs 使用$scope 对象来调用控制器。
在 angularjs 中, $scope 是一个应用象(属于应用变量和函数)。
控制器的 $scope (相当于作用域、控制范围)用来保存angularjs model(模型)的对象。
控制器在作用域中创建了两个属性 (firstname 和 lastname)。
ng-model 指令绑定输入域到控制器的属性(firstname 和 lastname)。
控制器方法
上面的实例演示了一个带有 lastname 和 firstname 这两个属性的控制器对象。
控制器也可以有方法(变量和函数):
angularjs 实例
<!doctype html> <html> <head> <meta charset="utf-8"> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> </head> <body> <div ng-app="myapp" ng-controller="personctrl"> 名: <input type="text" ng-model="firstname"><br> 姓: <input type="text" ng-model="lastname"><br> <br> 姓名: {{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> </body> </html>
运行效果:
名:
姓:
姓名: john doe
外部文件中的控制器
在大型的应用程序中,通常是把控制器存储在外部文件中。
只需要把 <script> 标签中的代码复制到名为 personcontroller.js 的外部文件中即可:
angularjs 实例
<!doctype html> <html> <head> <meta charset="utf-8"> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> </head> <body> <div ng-app="myapp" ng-controller="personctrl"> 名: <input type="text" ng-model="firstname"><br> 姓: <input type="text" ng-model="lastname"><br> <br> 姓名: {{firstname + " " + lastname}} </div> <script src="personcontroller.js"></script> </body> </html>
运行结果:
名:
姓:
姓名: john doe
其他实例
以下实例创建一个新的控制器文件:
angular.module('myapp', []).controller('namesctrl', function($scope) { $scope.names = [ {name:'jani',country:'norway'}, {name:'hege',country:'sweden'}, {name:'kai',country:'denmark'} ]; });
保存文件为 namescontroller.js:
然后,在应用中使用控制器文件:
angularjs 实例
<!doctype html> <html> <head> <meta charset="utf-8"> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> </head> <body> <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> </body> </html>
运行效果:
- jani, norway
- hege, sweden
- kai, denmark
以上就是对angularjs 控制器资料的整理,后续继续补充。