"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como usar $on e $broadcast para comunicação de eventos em Angular?

Como usar $on e $broadcast para comunicação de eventos em Angular?

Publicado em 2024-11-08
Navegar:244

How to Use $on and $broadcast for Event Communication in Angular?

Comunicação de eventos em Angular: $on e $broadcast

Em Angular, a comunicação de eventos é crucial para coordenar interações entre diferentes partes de um aplicativo . $on e $broadcast são mecanismos angulares básicos que permitem a transmissão e o tratamento eficazes de eventos entre componentes.

Compreendendo $on e $broadcast

  • $broadcast: Emitido por um escopo para notificar todos os seus descendentes (escopos filhos) e a cadeia pai do escopo de um evento específico.
  • $on: Registrado por um escopo para ouça eventos específicos transmitidos do escopo atual, de seus escopos pais ou de seus escopos filhos.

Implementando a comunicação de eventos em seu exemplo

No seu caso, você deseja que um evento de clique no controlador de rodapé acione um evento que possa ser manipulado pelo controlador do scanner de código. Para conseguir isso:

1. Broadcaster (footerController):

  • Use $rootScope para transmitir o evento, pois ele abrange todos os escopos do aplicativo.
  • Defina uma função como a seguinte no footerController:
$scope.startScanner = function() {
    $rootScope.$broadcast('scanner-started');
}

2. Receptor (codeScannerController):

  • Use $on para ouvir o evento de transmissão no codeScannerController:
$scope.$on('scanner-started', function(event, args) {
    // Your logic here
});

Recursos adicionais:

  • Você pode passar argumentos ao transmitir eventos usando $broadcast('event-name', { any: {} } ).
  • Assim, você pode receber esses argumentos no manipulador de eventos do receptor.

Documentação de referência:

Para informações mais detalhadas, consulte a documentação oficial do Angular sobre escopos: https://docs.angularjs.org/api/ng/type/$rootScope.Scope

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3