是一个对象,储存应用数据模型。作用域的层级结构对于DOM结构时相对应的
每个Angular应用只有一个rootscope,像DOM一样,子作用域有很多
Scope生命周期创建期注册$watch在模板链接阶段,指令会向作用域中注册监听器数据模型变化angular隐式地把数据模型放到$apply()中数据模型变化监测首先rootscope进入$digest方法,再根据各个监听表达式或者函数分发到各个作用域去,轮循检测数据模型是否发生变化,如果有变化就调用watch方法
关于$watch脏值检测时实时监测数据的,所以一定要是高效的。值得注意的是,我们在进行脏值检测的时候一定不能
基于作用域的事件传播
作用域可以像DOM节点一样,进行事件的传播。
broadcasted:父作用域向子作用域广播emitted:从子级作用域向父级作用域传值
这两种方式是用在html中的,不是js里,因为在$scope中已存在这两方法
<buttonng-click="$emit('MyEvent')">$emit('MyEvent')</button><buttonng-click="$broadcast('MyEvent')">$broadcast('MyEvent')</button>
我们在js中设置监听scope.scope.scope.on()
$scope.$on('MyEvent',function(){$scope.count++;});
这样就可以实现父子间通信