# ng-event-emitter

> Event Emitter class

Latest version **0.3.0** (published 2017-02-01) · MIT license · 0 weekly downloads

## Install

```sh
npm install ng-event-emitter
pnpm add ng-event-emitter
yarn add ng-event-emitter
bun add ng-event-emitter
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.3.0 |
| Published | 2017-02-01 |
| First published | 2017-01-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Alessio Michelini |
| Maintainers | darkmavis1980 |

## Links

- npm: https://www.npmjs.com/package/ng-event-emitter
- npm.io page: https://npm.io/package/ng-event-emitter

## Dependencies (2)

- [lodash](https://npm.io/package/lodash.md) ^4.17.4
- [wiredep](https://npm.io/package/wiredep.md) ^4.0.0

## Recent versions

- 0.3.0 (latest) — 2017-02-01
- 0.2.2 — 2017-01-19
- 0.2.1 — 2017-01-19

## README

# ngEventEmitter

This is a small library to add an event emitter functionality in AngularJS 1.x, and it contains a small factory with two methods, `.on` and `.triggerEvent`, written mostly because I didn't want to depend to the $rootScope or the $scope providers, but to have a much more lightweight version of event emitters.

## Installation

To download the library you can do it via bower:

```
bower install ng-event-emitter --save
```

Or via NPM

```
npm install ng-event-emitter --save
```

To add to your angular project, just add the `ngEventEmitter` into your module dependencies, and `EventEmitter` as a dependency injection to your service/controller.

The `.on(eventName, callback)` method requires two arguments, an *eventName* (a simple string to identify the event) and a *callback* function.
Multiple callbacks can be attached to the same event, and they will all be invoked once the event is triggered.
The `.triggerEvent(eventName [,data])` method simply trigger the passed event, which is the only compulsory argument, a second argument can be passed to send data to the `.on` method, as shown in the second example down below.

```javascript

angular.module('myApp', ['ngEventEmitter'])

.service('MyService', function(EventEmitter){
  this.events = new EventEmitter();

  this.events.on('salute', function(){
    console.log('hello world');
  });

  this.events.triggerEvent('salute'); // it will print `hello world` in the console

  // Passing data from the triggerEvent
  this.events.on('cheers', function(name){
    console.log('cheers ' + name);
  });

  this.events.triggerEvent('cheers', 'Alex'); // it will print `cheers Alex` in the console

  // Multiple callbacks for the same event

  this.events.on('test', function(){
    console.log('test 1');
  });

  this.events.on('test', function(){
    console.log('test 2');
  });

  this.events.triggerEvent('test'); // it will print `test 1` and `test 2` in the console

  // One callback for multiple events with passed data

  this.events.on(['test1', 'test2'], function(name){
    console.log('hello ' + name);
  });

  this.events.triggerEvent('test1', 'Alex'); // it will print `test Alex` in the console
  this.events.triggerEvent('test2', 'Liza'); // it will print `test Liza` in the console
});

```

If you want to clear all the callbacks previously assigned to a specific events, you can pass the options object as a second argument, specifying `clearEvent` to be `true`, as shown in the example below:

```javascript
this.events.on('test', function(){
  console.log('test 1');
});

this.events.on('test', {clearEvent: true} function(){
  console.log('test 2');
});

this.events.triggerEvent('test'); // it will print `test 2` only in the console
```

---

### Unit tests

To run the unit tests, just use the command `npm test` from the command line, but be sure to have ran `npm install` and `bower install` before to install all the dependencies needed.

---
_Source: https://npm.io/package/ng-event-emitter · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
