Skip to content

vermicida/ng-pubsub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ng-pubsub

ng-pubsub is an AngularJS module that simplifies the way the siblings scopes -or any two other pieces of code- talk each other. AngularJS gives you $emit to dispatch events from a scope to the top of its hierarchy, and $broadcast to dispatch them to the bottom, but no mechanism is given to do that with siblings scopes. ng-pubsub fixes this.

How to

The first step is to download the ng-pubsub script. You can do it cloning this repo:

$ git clone https://github.com/vermicida/ng-pubsub.git

Or via NPM:

$ npm install ng-pubsub

Once the library is downloaded, make sure you are referencing it in your index.html, just after the AngularJS library reference. The minified version is only recommended for a production environment.

<script src="./node_modules/ng-pubsub/ng-pubsub.js"></script>

You must inject the ng-pubsub dependency within your module setter:

angular.module("test", ["dahr.ng-pubsub"]);

To subscribe a scope to an event, just use the $subscribe function. An unsubscriber function is returned, so remember to keep it safe:

angular
  .module("test")
  .controller("sibling1", function($scope, $pubsub) {
    var unsubscribe = $pubsub.$subscribe("onMessagePublished", function(data) {
      alert(data.message);
    });
  }
);

Then, to publish data on that event use $publish:

angular
  .module("test")
  .controller("sibling2", function($scope, $pubsub) {
    $pubsub.$publish("onMessagePublished", {
      message: "Hi, world"
    });
  }
);

If you want to unsubscribe the scope from that event, just do the following:

unsubscribe();

License

Code released under the MIT license.

About

ng-pubsub is an AngularJS module that simplifies the way the siblings scopes -or any two other pieces of code- talk each other.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published