Uso de $broadcast(), $emit() y $on() en AngularJS

Resuelto Balanjaneyulu K asked hace 8 años • 3 respuestas

Entiendo que $Broadcast()se $Emit()utilizan $On() para generar un evento en un controlador y manejarlo en otro controlador. Si es posible, ¿puede alguien darme algún ejemplo en tiempo real sobre el uso de los tres anteriores, ya que soy nuevo angular JS?

He revisado los siguientes enlaces y entiendo el uso básico.

http://www.binaryintellect.net/articles/5d8be0b6-e294-457e-82b0-ba7cc10cae0e.aspx

Balanjaneyulu K avatar Jun 09 '16 12:06 Balanjaneyulu K
Aceptado

$emitir

Envía un nombre de evento hacia arriba a través de la jerarquía de alcance y notifica a los $rootScope.Scopeoyentes registrados. El ciclo de vida del evento comienza en el ámbito al que $emitse llamó. El evento avanza hacia el ámbito raíz y llama a todos los oyentes registrados a lo largo del camino. El evento dejará de propagarse si uno de los oyentes lo cancela.

$transmitir

Envía un nombre de evento a todos los ámbitos secundarios (y a sus hijos) y lo notifica a los $rootScope.Scopeoyentes registrados. El ciclo de vida del evento comienza en el ámbito al que $broadcastse llamó. Todos los oyentes del evento en este ámbito reciben una notificación. Luego, el evento desciende hacia los ámbitos secundarios y llama a todos los oyentes registrados en el camino. El evento no se puede cancelar.

$en

Escucha eventos de un tipo determinado. Puede captar el evento enviado por $broadcasty $emit.


Demostración visual:

Código de trabajo de demostración, que muestra visualmente el árbol de alcance (relación padre/hijo):
http://plnkr.co/edit/am6IDw?p=preview

Demuestra las llamadas al método:

  $scope.$on('eventEmitedName', function(event, data) ...
  $scope.broadcastEvent
  $scope.emitEvent
Gayathri Mohan avatar Jun 09 '2016 05:06 Gayathri Mohan
  • Transmisión: podemos pasar el valor de padre a hijo (es decir, padre -> controlador hijo).
  • Emitir: podemos pasar el valor del hijo al padre (es decir, hijo -> controlador principal).
  • Activado: captura el evento enviado por $broadcasto $emit.
Srikrushna avatar Mar 13 '2017 20:03 Srikrushna