当前位置: 首页 > Web前端 > HTML5

AngularJs的功能(四)--controller

时间:2023-04-05 19:25:53 HTML5

controllerControllerController是Angular应用的三大组件之一。先说说我对angularcontroller的理解:AngularJS应用是由controller控制的。ng-controller指令定义了一个应用程序控制器。控制器是使用标准JavaScript对象构造函数创建的JavaScript对象。AngularJS使用$scope对象来调用控制器。在AngularJS中,$scope是一个应用对象(属于应用变量和函数)。controller的$scope(相当于scope,控制作用域)用来保存AngularJS的Model(模型)对象。要显式创建$scope对象,我们需要将控制器对象附加到DOM元素,使用ng-controller指令属性:{{person.name}}

ng-controller指令为它所在的DOM元素创建一个新的$scope对象,并将这个$scope对象包含到外部DOM元素的$scope对象中。在上面的示例中,外部DOM元素的$scope对象是$rootScope对象。Scope对象初始化通常,在创建Angular应用程序时,需要先设置Scope的初始状态。您需要为范围设置一些属性,包括视图中预先声明的模型,所有$scope属性都在控制器注册的DOM中可用。向scope对象添加一些行为为了在视图中响应一些事件或者进行一些计算,我们必须向$scope添加一些行为。我们通过向$scope对象添加方法来为其添加行为,该方法可以被模板/视图调用。以下示例演示了如何向控制器添加方法angular.module('myApp'[]).controller('DoubleController',['$scope',function($scope){$scope.double=function(value){返回值*2;};}]);一旦控制器被添加到DOM中,这个方法就可以在模板中调用两次equals{{double(num)}}
注意以下几点:ng-controller指令隐式地为模板创建一个范围,该范围由SpicyController控制器管理。只是一个简单的javascript函数。命名约定以大写字母开头,以Controller结尾。将属性分配给范围以创建和更新模型控制器的方法。您可以通过直接赋值创建控制器的方法或属性。范围。对于任何一个属性或方法,如果AngularJS在当前作用域中找不到它,它就会去父作用域中寻找。如果在父作用域中找不到它,它将继续回溯,直到到达$rootScope。唯一的例外:一些指令属性可以选择性地创建一个独立的作用域,使这个作用域不继承它的父作用域,这将在详细说明中解释。