书上对事件的描述并不多,但实践中却是比较好用的东西。
先粘一下概念和API:
如同浏览器响应浏览器层的事件,比如鼠标点击、页面滚动那样,Angular应用也可以响应Angular事件。这使我们可以在应用中嵌套的各组件之间进行通信,即使这些组件在创建时并未考虑到其他组件。
注意:Angular事件系统并不与浏览器的事件系统相通,这意味着,我们只能在作用域上监听Angular事件而不是DOM事件。
- $emit只能向parent controller传递event与data
- $broadcast只能向child controller传递event与data
- $on用于接收event与data
事件属性 | 目的 |
event.targetScope | 发出或者传播原始事件的作用域 |
event.currentScope | 目前正在处理的事件的作用域 |
event.name | 事件名称 |
event.stopPropagation() | 一个防止事件进一步传播(冒泡/捕获)的函数(这只适用于使用`$emit`发出的事件) |
event.preventDefault() | 这个方法实际上不会做什么事,但是会设置`defaultPrevented`为true。直到事件监听器的实现者采取行动之前它才会检查`defaultPrevented`的值。 |
event.defaultPrevented |