我爱编程

AngularJS 之控制器(Controller)

2018-04-14  本文已影响0人  聂叼叼

        AngularJS 控制器控制AngularJS 应用程序的数据。AngularJS 控制器是常规的JavaScript 对象

        AngularJS 应用程序被控制器控制。ng-controller指令定义了应用程序控制器。控制器是JavaScript 对象,由标准的 JavaScript对象的构造函数创建。

        来看一个例子:

定义一个控制器

应用解析:

AngularJS 应用程序由ng-app定义。应用程序在<div>内运行。ng-controller="myCtrl"属性是一个 AngularJS 指令。用于定义一个控制器。myCtrl函数是一个 JavaScript 函数。

AngularJS 使用$scope对象来调用控制器。在 AngularJS 中, $scope 是一个应用对象(属于应用变量和函数)。

控制器的$scope(相当于作用域、控制范围)用来保存AngularJS Model(模型)的对象。(我所用的$rootScope是$scope的父类,比$scope的域更加大);

控制器在作用域中创建了两个属性(firstNamelastName)。

ng-model指令绑定输入域到控制器的属性(firstName 和 lastName)。


控制器方法

上面的实例演示了一个带有 lastName 和 firstName 这两个属性的控制器对象。

控制器也可以有方法(变量和函数):

拥有变量和函数(方法)的控制器

外部文件中的控制器(其实就是把控制器写在一个js文件中,然后引进来就ok,跟引js库类似)

在大型的应用程序中,通常是把控制器存储在外部文件中。只需要把标签<script>中的代码复制到名为 personController.js 的外部文件中即可:

html页面 personController的js文件

            控制器定义有两个参数, 第一个是控制器名称(字符串), 第二个是一个函数或者数组, 当为函数时, 表示控制器构造函数, , 当为数组时, 数组前面的元素为构造函数用到的字符串形式的服务, 数组最后一个元素为构造函数, 此时构造函数的参数列表和数组前面元素是一一对应的, 例如:

module.controller("myController", function ($scope, $http, $timeout){

  //

});

module.controller("myController", ["$scope", "$http","$timeout", function (scope,http ,timeout ){

  //

}]);


AngularJS model 中可以有多个控制器:

例如:

代码

可以理解每个定义的控制器,是一个有函数和变量的区域,但是这些区域都是在$scope这个域里面。

上一篇 下一篇

猜你喜欢

热点阅读