angular的模块之间,以及controller、directive等组件之间,是相对独立的,用以实现解耦合。
为实现相互之间传递信息及操作流程,有以下一些机制:
1、事件机制:
$scope.$broadcast:向下广播事件,下方所有的scope都会接收到这个事件,事件不能中途终止。
$scope.$emit:向上冒泡事件,可带参数,一直冒泡到$rootScope,中途可以用stopPropagation()方法终止冒泡。
2、scope的继承机制:
子scope的__proto__对象就是父scope,从而直接实现了数据从父scope传递到子scope。
但无法直接将数据传递给父scope,但可以通过调用父scope上的js方法,把数据通过参数传递给父scope
3、watch机制:
在子scope上可以$watch一个变量名,绑定一个回调函数。当父scope上改变这个变量时,就会执行子scope的回调函数,从而实现父scope到子scope的调用。
这种方式比通过$broadcast的方式性能要好。
时间: 2024-11-08 20:14:33