AngularJS $on Method

The AngularJS $on method is used to listens dispatched events of a given type. The $on method catches the event dispatched by $broadcast and $emit methods.

Syntax

$on(name, listener);
  • In the $on method name is the event name. This watchExpression is called on every $digest() and returns the value that is being watched.
  • In the $watch method listener is a function that is called when the value of the $scope property are not equal to previous value. If the watchExpression is equal to previous value then listener will not be called.
  • In the $watch method objectEquality is a boolean type and used for object equality using angular.equals instead of comparing for reference equality.

Example

<!DOCTYPE html>
<html ng-app="app">
<head> <!-- www.techstrikers.com -->
 <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.1/angular.min.js"></script> 
  <meta charset="utf-8">          
    <title>AngularJS $broadcast,$emil with $on Example</title>
  <script>
    var app = angular.module('app', []);
    app.controller("ParentController",
      function($scope) {
        $scope.emitClicked = function(msg) {
           $scope.$emit('event', { message: msg });
        };
        $scope.broadcastClicked = function(msg) {
         $scope.$broadcast('event', { message: msg });
        };
      });

    app.controller("ChildController",
      function($scope) {
        $scope.$on('event', function(event, args) {
          $scope.ChildMessage  = 'From Child Controller: ' + args.message;
        });

      });

    app.controller("GrandParentController",
      function($scope) {
        $scope.$on('event', function(event, args) {
          $scope.GrandParentMessage  = 'From GrandParent Controller: ' + args.message;
        });
      });
  </script>
</head>
<body style="background-color:#DDE4E9;">
<fieldset style="background-color:#DDE4E9;">                      
    <legend>AngulerJS $broadcast,$emil with $on method Example</legend> 
  <div ng-controller="GrandParentController">
    <p style="font-family:Arial;color:yellow;background:steelblue;padding:3px;width:350px;">  
            {{GrandParentMessage}}  
          </p>
    <div ng-controller="ParentController">
      <input ng-model="msg" placeholder="Enter Message">
      <button ng-click="emitClicked(msg)">
        $emit
      </button>
      <button ng-click="broadcastClicked(msg)">
        $broadcast
      </button>
      <div ng-controller="ChildController">
            <p style="font-family:Arial;color:yellow;background:steelblue;padding:3px;width:350px;">  
            {{ChildMessage}}  
          </p>
      </div>
    </div>
  </div>
   </fieldset> 
</body>

</html>  
Try Now

See Also

AngularJS Built-in Filters
AngularJS Built-in Directives
AngularJS Expression
AngularJS Built-in Events
AngularJS Scope Methods
AngularJS Built-in Services
AngularJS Controller Inheritance
AngularJS Custom Directives


 
SHARE THIS IF YOU LIKE!
submit to reddit

SUBSCRIBE FOR LATEST UPDATES
HAVE WE CONNECTED ON FACEBOOK?
TOP TUTORIALSTOP CODE EXAMPLESTOP LIVE DEMOLINKSSTAY CONNECTED
HTML Tutorial
HTML5 Tutorial
Bootstrap3 Tutorial
Javascript Tutorial
TypeScript Tutorial
AngularJS Tutorial
CSharp Tutorial
PHP Tutorial
Developer Tools
Javascript
AngularJS
Google MAP API V3
ASP.NET
Javascript
AngularJS
Google MAP API V3
Contact Us
Advertise with Us
Privacy Policy
Disclaimer
Stay connected. We actually like you. If you want to get up to the minute updates, then connect with us on your fav below.
 
Twitter   Linkedin   Facebook   Google+    RSS   Pinterest
 
Protected by Copyscape Original Content Checker
 
 
Copyright ©2017 www.techstrikers.com Unauthorized reproduction/replication of any part of this site is prohibited.