AngularJs事件

事件的传播

冒泡

要把事件沿着作用域链向上派送(从子作用域到父作用域),我们要使用$emit() 函数。

// 发送一个事件
// 我们的用户以当前user登录了
scope.$emit('user:logged_in', scope.user);
  1. name(字符串)
    要发出的事件名称。
  2. args(集合)
    一个参数的集合,作为对象传递到事件监听器中。

向下传播 $broadcast

// 等等,购物车去结账了
// 当购物车在结账的时候
// 下面所有的指令都应当禁用自己
scope.$broadcast('cart:checking_out', scope.cart);
  1. name(字符串)
    要发出的事件名称。
  2. args(集合)

事件的监听

$on()方法

scope.$on('$routeChangeStart',
 function(evt, next, current) {
 // 一个新的路由被触发了
});

事件对象

事件对象有以下属性

targetScope(作用域对象)

这个属性是发送或者广播事件的作用域。

currentScope(作用域对象)

这个对象包含了当前处理事件的作用域。

name(字符串)

这个字符串是触发之后,我们正在处理的事件名称。

stopPropagation(函数)

/////
我们用$emit() 调用的有好几个事件,它们把事件往上发, 更多调用的是$broadcast() 事件。

你可能感兴趣的:(AngularJs事件)