Agora que a diferença de desempenho entre $broadcast
e $emit
foi eliminada, há alguma razão para preferir $scope.$emit
a $rootScope.$broadcast
?
Eles são diferentes, sim.
$emit
está restrito à hierarquia de escopo (para cima) - isso pode ser bom, se for adequado ao seu design, mas me parece uma restrição bastante arbitrária.
$rootScope.$broadcast
funciona em todos os que escolhem ouvir o evento, o que é uma restrição mais sensata em minha mente.
Estou esquecendo de algo?
EDITAR:
Para esclarecer em resposta a uma resposta, a direção da expedição não é o problema que estou procurando. $scope.$emit
despacha o evento para cima e $scope.$broadcast
para baixo. Mas por que não usar sempre $rootScope.$broadcast
para alcançar todos os ouvintes pretendidos?