当前位置: 移动技术网 > IT编程>脚本编程>AngularJs > AngularJS入门教程之控制器详解

AngularJS入门教程之控制器详解

2018年05月29日  | 移动技术网IT编程  | 我要评论

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 控制器资料的整理,后续继续补充。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网