现在,$ broadcast和$ emit之间的性能差异已经消除,是否有任何理由喜欢$ scope。$ emit到$ rootScope。$ broadcast?
他们是不同的,是的。
$ emit限制在范围层次结构(向上) – 这可能是好的,如果它适合你的设计,但在我看来,一个相当任意的限制。
$ rootScope。$ broadcast在所有选择监听事件的工作,这是一个更明智的限制在我心中。
我缺少什么?
编辑:
为了澄清回答一个答案,调度的方向不是我的问题。 $ scope。$ emit调度事件向上,$ scope。$ broadcast – 向下调用。但是为什么不总是使用$ rootScope。$ broadcast来达到所有预期的监听器呢?
tl; dr(this tl; dr is from
@sp00m‘s answer below)
原文链接:/angularjs/147861.html$emit dispatches an event upwards … $broadcast dispatches an event downwards
详细说明
$ rootScope。$ emit只允许其他$ rootScope监听器捕获它。这是很好的,当你不想让每个$ scope获得它。主要是高层次的沟通。想想它是成年人在房间里互相交谈,所以孩子们听不到他们。
$ rootScope。$ broadcast是一种几乎可以听到的方法。这将是等同于父母大吼大叫,晚餐已准备好,所以每个人在房子听到它。
$ scope。$ emit是当你想要$ scope和其所有父项和$ rootScope听到事件。这是一个孩子在家里向他们的父母呜咽(但不是在杂货店,其他孩子可以听到)。
$ scope。$ broadcast用于$ scope本身及其子节点。这是一个孩子耳语给它的毛绒动物,所以他们的父母听不到。