理解angularJs中的$on,$broadcast,$emit

Posted 林灬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了理解angularJs中的$on,$broadcast,$emit相关的知识,希望对你有一定的参考价值。

 

$emit作用是将一个事件从子作用域广播至父作用域,直至根作用域。(包括自己)

$emit有两个参数name和args,name就是需要广播的名字,args是一个或者多个参数。

 

 

$broadcast的参数与$emit差不多,一个是名字,一个是参数。

$broadcast是为了使一个事件从父做用语向子作用域广播。(包括自己)

相同的一点是:$emit,$broadcast都需要绑定事件。像这样:

$scope.eventName = function () {
$broadcast(broadcastName, broadcastArgs );
}

然后再父作用域或者子作用域监听这个事件。

 

 

$on有两个参数,name和listener。

name指监听的事件的名字。比如说上面的broadcastName,listener是一个函数,它也有两个参数:event和args

event有以下几个属性:

targetScope:传播事件的作用域

currentScope:当前作用域

name:事件名称,如上文eventName

stopPropagation() :使$emit事件在本作用域传播后不再向上传播

preventDefault() :阻止传播事件,并给defaultPrevented赋值为true

defaultPrevented:如果调用了preventDefault事件则返回true。

以上是关于理解angularJs中的$on,$broadcast,$emit的主要内容,如果未能解决你的问题,请参考以下文章

Angularjs中的事件广播 —全面解析$broadcast,$emit,$on

AngularJS on Rails 中的 CORS 问题

angularjs中的事件传播$emit,$broadcast,$on

angularJS 系列---$emit(), $on(), $broadcast()的使用

angularjs的$on$emit$broadcast

AngularJs 中的transclude的理解