码迷,mamicode.com
首页 > 其他好文 > 详细

Angular之作用域

时间:2016-05-17 19:34:36      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

一、$rootScope和$scope

  AngularJS在启动并生成视图时,会将根ng-app元素同$rootScope进行绑定。$rootScope是所有$scope对象的最上层。

  $rootScope是Angular中接近全局作用域的对象。$scope在Angular中充当数据模型,在视图与控制器之间充当桥梁的作用。

 

  以$rootScope的方式:

<!doctype html>
<html>
    <head>
        <script src="http://code.angularjs.org/angular-1.0.1.min.js"></script> 
    </head>
   <body>
    <div ng-app="myApp">
      <h1>Hello {{ name }}!</h1>
    </div>
    <script type="text/javascript" src="controller.js"></script>
  </body>
</html>

controller.js:
 angular.module("myApp",[]).run(function($rootScope){
     $rootScope.name=‘word‘;
 })

  以$scope的方式:

<div ng-app="myApp">
        <div ng-controller="mycontroler">
             <h1>Hello {{ name }}!</h1>
        </div>
     
    </div>
    <script type="text/javascript" src="controller.js"></script>

controller.js:
 angular.module("myApp",[]).controller(‘mycontroler‘,function($scope){
     $scope.name=‘scope word‘;
 })

  注意:ng-controller指令附加到一个DOM元素上,会为这个DOM元素创建一个新的$scope对象,并将它嵌入到$rootScope对象中.

二、$scope对象的生命周期

  1. 创建:在创建控制器或指令时,AngularJS会用$injector创建一个新的作用域,并在这个新的控制器或指令运行时将作用域传递进去。
  2. 链接:当Angular开始运行时,所有$scope对象都会附加或者连接到视图中。所有创建$scope对象的函数也会将自身附加到视图中,这些作用域将会注册当Angular应用上下文发生变化时需要运行的函数。(这些函数被称作$watch函数,Angular通过这些函数知道何时启动事件循环)
  3. 更新:当事件循环运行时,它通常执行在顶层$scope对象上(即$rootScope),每个子作用域都执行自己的脏值检测。如果检测到任意变化,$scope对象就会触发指定的回调函数。
  4. 销毁:当一个$scope在视图中不在需要时,这个作用域将会清理和自己销毁(Angular执行销毁),自己也可以根据$destory()来清理此作用域。

 

Angular之作用域

标签:

原文地址:http://www.cnblogs.com/Two-2Yang/p/5502780.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!