欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

AngularJS基础学习笔记之控制器

程序员文章站 2022-03-14 16:26:50
angularjs控制器用来控制angularjs applications的数据。   angularjs控制器就是普通的javascript对象。 angularj...

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>

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