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() 事件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,302评论 19 139
  • 在AngularJS中,作用域是具有层次分明的结构。其中根层级也就是我们经常看到的$rootScope,其次是$S...
    Bennt阅读 5,036评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,896评论 18 399
  • 一,angularjs $broadcast $emit $on的处理思想 在一个controller里面通过事件...
    lmem阅读 1,423评论 0 0
  • 抽空看了成甲的演讲,收获颇丰,稍作笔录,与君分享。 来,拿起笔和纸先记下这句话 学习并不是要记住更多知识,而是要把...
    大張冰阅读 1,573评论 5 2