现在,性能差异$broadcast
and $emit
已经被淘汰了,还有什么理由选择$scope.$emit
to $rootScope.$broadcast
?
他们是不同的,是的。
$emit
仅限于范围层次结构(向上) - 如果它适合您的设计,这可能很好,但在我看来,这是一个相当任意的限制。
$rootScope.$broadcast
适用于所有这些choose听事件,这是我心中比较明智的限制。
我错过了什么吗?
EDIT:
为了澄清回应答案,调度的方向不是我所追求的问题。$scope.$emit
向上调度事件,并且$scope.$broadcast
- 向下。但为什么不总是使用$rootScope.$broadcast
到达所有目标听众?
tl;dr (这个 tl;dr 来自@sp00m https://stackoverflow.com/a/26752415/699294的答案如下)
$emit
向上发送一个事件...$broadcast
向下调度事件
详细解释
$rootScope.$emit
只让其他$rootScope
听众明白了。当你不想要每一个时,这很好$scope
为拿到它,为实现它。主要是高层沟通。可以将其想象为成年人在房间里互相交谈,这样孩子们就听不到他们的声音。
$rootScope.$broadcast
是一种让几乎所有东西都能听到的方法。这相当于父母大喊晚餐准备好了,这样家里的每个人都能听到。
$scope.$emit
当你想要那样的时候$scope
以及它所有的父母和$rootScope
听到这个事件。这是一个孩子在家里向父母抱怨(但不是在其他孩子可以听到的杂货店)。
$scope.$broadcast
是为了$scope
它本身和它的孩子。这是一个孩子对着毛绒玩具窃窃私语,这样他们的父母就听不到。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)