AngularJS基础学习笔记之控制器
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变量和函数的所有者)。
控制器包含两个属性(或者叫变量):firstname和lastname。它们被附加到$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>
以上所述就是本文的全部内容了,希望大家能够喜欢。