Page 309 - AngularJS权威教程
P. 309

20.4  事件对象    289


                  1. name(字符串)                                                                       19
                  要发出的事件名称。

                  2. args(集合)                                                                        20
                  一个参数的集合,作为对象传递到事件监听器中。
                                                                                                     21
                  $emit()方法返回了一个事件对象(关于事件对象的细节,查看20.3节)。

                  从监听器中发出的一切异常都会传递到$exceptionHandler服务中。
                                                                                                     22
              20.3 事件监听
                                                                                                     23

                  要监听一个事件,我们可以使用$on()方法。这个方法为具有某个特定名称的事件注册了一
              个监听器。事件名称就是在Angular中触发的事件类型。                                                           24
                  例如,我们可以在路由变更过程被触发时,监听事件:
                                                                                                     25
                  scope.$on('$routeChangeStart',
                      function(evt, next, current) {
                          // 一个新的路由被触发了
                  });                                                                                26
                  不管什么时候事件$routeChangeStart(路由将要变更的时候,会广播这个事件)被触发,
              监听器(这个函数)都会被调用。                                                                        27

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


              20.4 事件对象                                                                              29


                  事件对象有以下属性。
                                                                                                     30
                  1. targetScope(作用域对象)

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

                  2. currentScope(作用域对象)
                                                                                                     32
                  这个对象包含了当前处理事件的作用域。

                  3. name(字符串)
                                                                                                     33
                  这个字符串是触发之后,我们正在处理的事件名称。

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

                  5. preventDefault(函数)                                                              35
                  preventDefault把defaultPrevented标志设置为true。尽管不能停止事件的传播,我们可
              以告诉子作用域无需处理这个事件(也就是说,可以安全地忽略它们)。                                                       36
   304   305   306   307   308   309   310   311   312   313   314