angularjs里面的事件
书上对事件的描述并不多,但实践中却是比较好用的东西。
先粘一下概念和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