发表于: 2019-12-20 21:15:55

1 1073




今天完成的事:

完完整整的做完视频部,文学部,我的收藏,学生证


明天的计划:

后台的登录和路由守卫。


遇到的困难:

暂无。


今天的收获:

如同浏览器响应浏览器层的事件,比如鼠标点击、页面滚动那样, Angular应用也可以响应

Angular事件。这使我们可以在应用中嵌套的各组件之间进行通信,即使这些组件在创建时并未

考虑到其他组件。


<span 因为作用域是有层次的,所以我们可以在作用域链上传递事件。通常来说,选择要使用的事件传递方式,一个好的经验法则是:查看将要触发事件的作用域。
如果要通知整个事件系统(允许任意作用域处理这个事件),就要往下广播。

<span

<span <="" span="" style="word-break: break-all;">

在一个$emit()事件函数的调用中,事件从子作用域冒泡到父作用域。在产生事件的作用域

之上的所有作用域都会收到这个事件的通知。

当想要跟应用的其他部分交流状态的变更时,我们使用$emit()。如果想要跟$rootScope通

信,需要$emit()这个事件。

$emit()方法带有两个参数。

1. name(字符串)

要发出的事件名称。

2. args(集合)

一个参数的集合,作为对象传递到事件监听器中。

$emit()方法返回了一个事件对象

从监听器中发出的一切异常都会传递到$exceptionHandler服务中

<span

要监听一个事件,我们可以使用$on()方法。这个方法为具有某个特定名称的事件注册了一

个监听器。事件名称就是在Angular中触发的事件类型。

例如,我们可以在路由变更过程被触发时,监听事件:

scope.$on('$routeChangeStart',

function(evt, next, current) {

// 一个新的路由被触发了

});

不管什么时候事件$routeChangeStart(路由将要变更的时候,会广播这个事件)被触发,

监听器(这个函数)都会被调用。

Angular把evt对象作为第一个参数传给正在监听的一切事件,不管它是我们自定义的事件还

是内置的Angular服务


事件对象有以下属性。

1. targetScope(作用域对象)

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

2. currentScope(作用域对象)

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

3. name(字符串)

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

4. stopPropagation(函数)

stopPropagation()函数取消通过$emit触发的事件的进一步传播。

5. preventDefault(函数)

preventDefault把defaultPrevented标志设置为true。尽管不能停止事件的传播,我们可

以告诉子作用域无需处理这个事件(也就是说,可以安全地忽略它们)。



mousedown:鼠标按钮被按下(左键或者右键)时触发。不能通过键盘触发。

mouseup:鼠标按钮被释放弹起时触发。不能通过键盘触发。

click:单击鼠标左键或者按下回车键时触发。这点对确保易访问性很重要,意味着onclick事件处理程序既可以通过键盘也可以通过鼠标执行。

dblclick:双击鼠标左键时触发。

mouseover:鼠标移入目标元素上方。鼠标移到其后代元素上时会触发。

mouseout:鼠标移出目标元素上方。

mouseenter:鼠标移入元素范围内触发,该事件不冒泡,即鼠标移到其后代元素上时不会触发。

mouseleave:鼠标移出元素范围时触发,该事件不冒泡,即鼠标移到其后代元素时不会触发。

mousemove:鼠标在元素内部移到时不断触发。不能通过键盘触发。




返回列表 返回列表
评论

    分享到