Angular之作用域

一、$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()来清理此作用域。

 

转载于:https://www.cnblogs.com/Two-2Yang/p/5502780.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值