ionic-angular
Version:
A powerful framework for building mobile and progressive web apps with JavaScript and Angular
67 lines (66 loc) • 2.09 kB
TypeScript
import { DomController } from '../platform/dom-controller';
import { Platform } from '../platform/platform';
/**
* @name Events
* @description
* Events is a publish-subscribe style event system for sending and responding to application-level
* events across your app.
*
* @usage
* ```ts
* import { Events } from 'ionic-angular';
*
* // first page (publish an event when a user is created)
* constructor(public events: Events) { }
*
* createUser(user) {
* console.log('User created!')
* this.events.publish('user:created', user, Date.now());
* }
*
*
* // second page (listen for the user created event after function is called)
* constructor(public events: Events) {
* events.subscribe('user:created', (user, time) => {
* // user and time are the same arguments passed in `events.publish(user, time)`
* console.log('Welcome', user, 'at', time);
* });
* }
*
* ```
* @demo /docs/demos/src/events/
*/
export declare class Events {
private _channels;
/**
* Subscribe to an event topic. Events that get posted to that topic will trigger the provided handler.
*
* @param {string} topic the topic to subscribe to
* @param {function} handler the event handler
*/
subscribe(topic: string, ...handlers: Function[]): void;
/**
* Unsubscribe from the given topic. Your handler will no longer receive events published to this topic.
*
* @param {string} topic the topic to unsubscribe from
* @param {function} handler the event handler
*
* @return true if a handler was removed
*/
unsubscribe(topic: string, handler?: Function): boolean;
/**
* Publish an event to the given topic.
*
* @param {string} topic the topic to publish to
* @param {any} eventData the data to send as the event
*/
publish(topic: string, ...args: any[]): any[];
}
/**
* @hidden
*/
export declare function setupEvents(plt: Platform, dom: DomController): Events;
/**
* @hidden
*/
export declare function setupProvideEvents(plt: Platform, dom: DomController): () => Events;