Open Source Web Application Framework for ASP.NET Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.6 KiB

ASP.NET Core MVC / Razor Pages UI: API de Eventos JavaScript

O objeto abp.event é um serviço simples que é usado para publicar e se inscrever em eventos globais no navegador.

Esta API não está relacionada a eventos locais ou distribuídos do lado do servidor. Ela funciona dentro dos limites do navegador para permitir que os componentes da interface do usuário (partes do código) se comuniquem de forma desacoplada.

Uso Básico

Publicando Eventos

Use abp.event.trigger para publicar eventos.

Exemplo: Publicar um evento Basket Updated (Carrinho Atualizado)

abp.event.trigger('basketUpdated');

Isso acionará todas as chamadas de retorno inscritas.

Se inscrevendo nos Eventos

Use abp.event.on para se inscrever em eventos.

Exemplo: Consumir o evento Basket Updated (Carrinho Atualizado)

abp.event.on('basketUpdated', function() {
  console.log('Manipulou o evento basketUpdated...');
});

Você começará a receber eventos depois de se inscrever no evento.

Cancelando a inscrição nos Eventos

Se você precisar cancelar a inscrição em um evento pré-inscrito, poderá usar a função abp.event.off(eventName, callback). Nesse caso, você tem a chamada de retorno como uma declaração de função separada.

Exemplo: Inscrever e cancelar a inscrição

function onBasketUpdated() {
  console.log('Manipulou o evento basketUpdated...');
}

//Inscrever
abp.event.on('basketUpdated', onBasketUpdated);

//Cancelar a inscrição
abp.event.off('basketUpdated', onBasketUpdated);

Você não receberá mais eventos depois de cancelar a inscrição no evento.

Argumentos do Evento

Você pode passar argumentos (de qualquer quantidade) para o método trigger e obtê-los na chamada de retorno da inscrição.

Exemplo: Adicionar o carrinho como argumento do evento

//Inscrever-se no evento
abp.event.on('basketUpdated', function(basket) {
  console.log('O novo objeto do carrinho: ');
  console.log(basket);
});

//Acionar o evento
abp.event.trigger('basketUpdated', {
  items: [
    {
      "productId": "123",
      "count": 2
    },
    {
      "productId": "832",
      "count": 1
    }
  ]
});

Múltiplos Argumentos

Se você deseja passar vários argumentos, pode passar como abp.event.on('basketUpdated', arg0, arg1, agr2). Em seguida, você pode adicionar a mesma lista de argumentos à função de chamada de retorno no lado do assinante.

Dica: Alternativamente, você pode enviar um único objeto que possui um campo separado para cada argumento. Isso facilita a extensão/mudança dos argumentos do evento no futuro sem quebrar os assinantes.