美文网首页
angularjs $emit $brodcast $on 事件

angularjs $emit $brodcast $on 事件

作者: 杨杨1314 | 来源:发表于2017-06-12 17:57 被阅读113次

Angularjs中不同作用域之间可以通过组合使用$broadcast,$emit,$on的事件广播机制来进行通信。基本用法就是:html当中定义一个事件,在一个controller里面通过事件触发一个方法,在方法里面通过$broadcast或$emit来定义一个变量,在父,子controller里面通过$on来获取。 

一:基本格式为:

1:$emit只能向parent controller传递event与data

      格式如下:$emit(eventName,args)

2:$broadcast只能向child controller传递event与data

      格式如下:$broadcast(eventName,args)

3:$on用于接收event与data

      格式如下:$on(event,arges) 也就是

$on的格式

二:一个实例,展现具体用法

view

这个是一个带有多层controller的view层。我自己,child,跟我平级的controller都包含在parentCtrl里面。其中的一个点击事件是在我自己的controller上面,并且点击的时候带有参数。那么,怎么在不同的作用域之间相互传递参数呢?就用到了事件广播机制。

controller

这个是点击我这个controller的时候触发的事件。其中,$scope.$emit()向父级的controller广播了个事件,这个事件就是:'I am myself',param+'my fathor' 我把自己发送给了父级;'I am myself',param+'my child' 我把自己发送给了子级。

接下来就是controller接收了。

1:parentCtrl 父级的controller

parent controller 

parentCtrl 当中用$on分别接收了$emit 和 $broadcast传的值,但是,从打印效果上来看,只有第一个$on生效了,如图

emit

这说明:$emit只能向parent controller传递event与data

2:childCtrl 子级的controller

child controller

打印效果为:

child

这个说明:brodcast传递给childCtrl的参数生效了。$broadcast只能向child controller传递event与data

3:broCtrl  平级的controller

平级controller

这个controller什么也打印不出来,因为这个controller是myselfCtrl的平级,$emit和$brodcast是不能向平级广播并传递参数的。

从controller当中,我们可以看到,接收来自父级或者子级的广播否是用的$on来接收的,要注意。

从上面的例子,就可以大概了解angularjs 的$emit $brodcast 和 $on 这三个事件广播机制的含义和用法了。

相关文章

  • angularjs $emit $brodcast $on 事件

    Angularjs中不同作用域之间可以通过组合使用$broadcast,$emit,$on的事件广播机制来进行通信...

  • vue子传父

    $emit向上提交事件使用$emit调用父组件的事件

  • vue 组件之间的传值2018-10-24

    1、子组件往父组件传值,通过emit事件 this.$emit(事件名称,参数) for数据 ...

  • Angular

    今天我要分享的内容: ··· ···例子 ··· AngularJS 事件AngularJS 支持以下事件:ng-...

  • vue组件间传值

    一. 子组件向父组件传值 - $emit 发射事件 1. 子组件$emit发射事件A 2. 父组件通过事件名A...

  • AngularJS 参考手册

    作者:Zyao89;转载请保留此行,谢谢; AngularJS 指令 AngularJS 事件 AngularJS...

  • $emit自定义事件

    $emit自定义事件,常常用于子组件向父组件通信定义事件:this.$emit(事件名称,参数1,参数2……参数n...

  • 抛出自定义事件

    vue3使用emit分发事件,类似于$emit,从setup的第二个参数中解构出emit

  • vue框架的主要内容

    生命周期事件 data method computed watch props emit事件

  • nodeJS入门

    EventEmitter 提供了多个属性,如 on 和 emit。on 函数用于绑定事件函数,emit 属性用于触...

网友评论

      本文标题:angularjs $emit $brodcast $on 事件

      本文链接:https://www.haomeiwen.com/subject/fbnlqxtx.html