Page 34 - AngularJS权威教程
P. 34

14  第 4 章  作用域


             4.3  作用域能做什么

                 作用域有以下的基本功能:

                  提供观察者以监视数据模型的变化;
                  可以将数据模型的变化通知给整个应用,甚至是系统外的组件;
                  可以进行嵌套,隔离业务功能和数据;
                  给表达式提供运算时所需的执行环境。

                 开发AngularJS应用的大部分工作内容,就是构建作用域及其相关的功能。

                     作用域包含了渲染视图时所需的功能和数据,它是所有视图的唯一源头。可以将作
                 用域理解成视图模型(view model)。
                 前面的例子中,我们在$rootScope中设置了一个name变量并在视图中引用了它:

                 angular.module('myApp', [])
                   .run(function($rootScope) {
                     $rootScope.name = "World";
                 });
                 在视图中可以引用这个name属性并将它展示给用户:

                 <div ng-app="myApp">
                   <h1>Hello {{ name }}</h1>
                 </div>

                 我们可以不将变量设置在$rootScope上,而是用控制器显式创建一个隔离的子$scope对象,
             把它设置到这个子对象上。使用ng-controller指令可以将一个控制器对象附加到DOM元素上,
             如下所示:

                 <div ng-app="myApp">
                   <div ng-controller="MyController">
                     <h1>Hello {{ name }}</h1>
                   </div>
                 </div>
                 我们可以创建一个控制器来管理与其相关的变量,而不用将name变量直接放在$rootScope上:

                 angular.module("myApp", [])
                 .controller('MyController',
                 function($scope) {
                   $scope.name = "Ari";
                 });
                 ng-controller指令为这个DOM元素创建了一个新的$scope对象,并将它嵌套在$rootScope中。


             4.4  $scope 的生命周期


                 当Angular关心的事件发生在浏览器中时,比如用户在通过ng-model属性监控的输入字段中
             输入,或者带有ng-click属性的按钮被点击时,Angular的事件循环都会启动。这个事件将在
             Angular执行上下文中处理。
   29   30   31   32   33   34   35   36   37   38   39