O sistema de eventos implementa o modelo publisher / subscriber. Ele pode ser usado para passar dados entre páginas, por exemplo.
e.g.
Em event-bus.js
Em page1.js
Em page2.js
Apesar de ser possível passar dados entre os componentes desta maneira, existem alguns problemas. Note que o componente só irá se inscrever no sistema de eventos se ele já tiver sido criado; desta forma, a ordem que os componentes são criados afetam o comportamento do sistema. Além disso, não é possível saber o estado do sistema a qualquer momento.
Recomendamos criar uma Store simples, que incorpora o sistema de eventos mas mantém o estado do sistema.
Template da estrutura
Em shared/todo.ts
Em shared/todo-actions.ts
Em shared/todo-store.ts
Desta forma é possível saber o estado do sistema a qualquer momento, além de poder se inscrever em eventos.
e.g.
on (eventName: string, callback: EventCallback, thisArg: Object = null): void
Cadastra uma callback no sistema de eventos. A callback receberá como parâmetros tudo o que for passado pelo método emit
Parâmetro
Tipo
Descrição
eventName
string
Nome do evento para cadastro
callback
function
Função de callback que será chamada quando o evento for emitido
thisArg
Object?
Contexto aplicado à callback
e.g.
off (eventName: string, callback: EventCallback): void
Remove uma callback cadastrada do sistema de eventos para o evento desejado
Parâmetro
Tipo
Descrição
eventName
string
Nome do evento para cadastro
callback
function
Função de callback que será chamada quando o evento for emitido
emit (eventName: string, …args: any[]): void
Emite um evento. O primeiro argumento é o nome do evento; todos os outros argumentos serão passados para as callbacks cadastradas para o evento