Te doy la bienvenida a nuestro sitio web, en este sitio vas a hallar la resolución de lo que andabas buscando.
Solución:
tl; dr(este tl; dr es de la respuesta de @ sp00m a continuación)
$emit
despacha un evento hacia arriba…$broadcast
envía un evento hacia abajo
Explicación detallada
$rootScope.$emit
solo deja que otros $rootScope
los oyentes lo captan. Esto es bueno cuando no quieres cada $scope
para conseguirlo. Sobre todo una comunicación de alto nivel. Piense en ello como adultos hablando entre sí en una habitación para que los niños no puedan escucharlos.
$rootScope.$broadcast
es un método que permite que casi todo lo escuche. Esto sería el equivalente a que los padres griten que la cena está lista para que todos en la casa la escuchen.
$scope.$emit
es cuando quieres eso $scope
y todos sus padres y $rootScope
para escuchar el evento. Este es un niño lloriqueando a sus padres en casa (pero no en una tienda de comestibles donde otros niños pueden escuchar).
$scope.$broadcast
es para el $scope
mismo y sus hijos. Este es un niño susurrando a sus animales de peluche para que sus padres no puedan escuchar.
No están haciendo el mismo trabajo: $emit
envía un evento hacia arriba a través de la jerarquía de alcance, mientras que $broadcast
envía un evento hacia abajo a todos los ámbitos secundarios.
Hice el siguiente gráfico a partir del siguiente enlace: https://toddmotto.com/all-about-angulars-emit-broadcast-on-publish-subscribing/
Como puedes ver, $rootScope.$broadcast
llega a muchos más oyentes que $scope.$emit
.
También, $scope.$emit
El efecto burbujeante se puede cancelar, mientras que $rootScope.$broadcast
no poder.
Comentarios y calificaciones
Te invitamos a defender nuestra faena añadiendo un comentario o dejando una valoración te estamos agradecidos.