Teraz, że różnica wydajności pomiędzy $broadcast
i $emit
została wyeliminowana, nie ma żadnych powodów, aby wolą $scope.$emit
się $rootScope.$broadcast
?
Są różne, tak.
$emit
jest ograniczona do hierarchii zakresu (w górę) - może to być dobre, jeśli pasuje do twojego projektu, ale wydaje mi się to dość arbitralnym ograniczeniem.
$rootScope.$broadcast
działa we wszystkich, którzy zdecydują się słuchać tego wydarzenia, co jest bardziej rozsądnym ograniczeniem w mojej opinii.
Czy coś brakuje?
EDYTOWAĆ:
Aby wyjaśnić w odpowiedzi na odpowiedź, nie chodzi o kierunek wysyłki. $scope.$emit
wywołuje zdarzenie w górę, i $scope.$broadcast
- w dół. Ale dlaczego nie zawsze $rootScope.$broadcast
docierać do wszystkich zamierzonych słuchaczy?