夺命雷公狗—angularjs—18—angularjs的事件
对于一款前端框架,提起事件,很容易让人联想到DOM事件,比如说鼠标点击以及页面滚动等。但是我们这里说的angular中的事件和DOM事件并不是一个东西。
事件的发布
我们可以通过 $emit()
以及 $broadcast() 来发布事件
$emit(name, args)
name 发布的事件名称
args 会作为对象传递到事件的监听器中
$emit() 发布的事件,会从子作用域冒泡到父作用域,产生事件的作用域之上的所有作用域都会收到这个事件的通知。
$broadcast(name, args)
同 $emit 的参数一直,name 作为事件的名字,args 作为监听器接受 的参数。使用该方法事件的传播方向是从上至下,即从父作用域到子作用域。
事件的监听
事件发布了,我们要注册监听事件的服务,才会对事件进行响应
可以通过 $on() 方法来注册事件监听事件。
$scope.$on(name, listenerFn)
当以 name 为事件名的事件被促发之后,listenerFn 事件就会被执行。
$on() 返回一个反注册函数,可以用其来取消监听器。
事件对象
所有的事件监听器第一个参数都代表了事件对象,该对象有以下属性:
targetScope 作用域对象,发送事件的作用域
currentScope :当前处理事件的作用域
name: 当前事件的事件的名称
stopPropagation: 取消$emit触发的事件进一步的传播
preventDefaul: 把defaultPreevented标志设置为true,告诉子作用域可以无需处理该事件。
defaultPreevented:布尔值
angular: 内置事件
$includeContentLoaded($emit事件)
ngInclude内容重新加载的时候,从ngInclude指令触发
$includeContentRequested($emit事件)
从调用ngInclude的作用域上发送,每次ngInclude的内容被请求的时候,都会发布该事件
$viewContentLoaded($emit事件)
当ngView内容被重新加载时,从ngView作用域上发布
$locationChangeStart($broadcast事件)
通过$location服务对浏览器的地址更新时会触发$locationChangeStart事件
$locationChangeSuccess($broadcast事件)
当浏览器的地址成功变更时触发
$routeChangeStart($broadcast事件)
在路由变更发生之前,该事件从$rootScope发布
最新文章
- Oracle之常见问题诊断方法
- ccs3
- final .....finally ...... 和Finalize ......区别
- Ubuntu下Apache+php+mysql网站架设详解
- HDU 4597 Play Game (DP,记忆化搜索,博弈)
- 访问权限PPP(public、private、protected、default)之成员变量、成员变量权限解析
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(36)-文章发布系统③-kindeditor使用
- 使用JasperReport+iReport进行Web报表开发
- [iOS] file patterns: The `public_header_files` pattern did not match any file.
- Java基础中一些容易被忽视的语法小细节总结
- vue2 兼容ie8
- weblogic的web.xml报错----Malformed UTF-8 char -- is an XML encoding declaration missing
- Intel x86_64 Architecture Background 2
- 表单控件 css的三中引入方式css选择器
- bzoj 2784 [JLOI2012]时间流逝——树上高斯消元
- Java并发编程原理与实战二十三:Condition原理分析
- Twitter.com在用哪些Javascript框架?
- bzoj1611 / P2895 [USACO08FEB]流星雨Meteor Shower
- 山东省第四届ACM程序设计竞赛A题:Rescue The Princess
- 解决:“Workbench has not been created yet” error in eclipse plugin programming”,OSGI启动控制台报错问题
热门文章
- 通过全局设置过滤器,就能让所有窗口都可移动,而不是都要继承指定QDialog
- DOM、SAX、JDOM、DOM4J四种XML解析方法PK
- css“变形”效果
- C#中string.Empty ,";"; , null 区别
- 20145211 《Java程序设计》第6周学习总结——三笑徒然当一痴
- JavaScript学习之cookies
- Docker镜像的创建、存出、载入
- Docker镜像的获取与删除
- [BS-02] iOS数组、字典、NSNumber 新写法—— @[]、@{}
- Swift vs. Objective-C:未来看好 Swift 的十个理由