$rootScope.$broadcast 与 $scope.$emit

2024-03-25

现在,性能差异$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(使用前将#替换为@)

$rootScope.$broadcast 与 $scope.$emit 的相关文章

随机推荐