Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.3/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.3/angular-route.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body ng-app="demo" ng-controller="MainCtrl">
  <button ng-click="callService()">Click me</button>
  <button ng-click="callParentMethod()">Call parent method</button>
</body>
</html>
 
angular.module('demo', ['ngRoute']);
var demo = angular.module('demo').controller('MainCtrl', function ($scope, ChildService) {
  $scope.callService = function () {
    ChildService.someMoreAwesomeStuff();
  };
  $scope.callParentMethod = function () {
    alert('The current progress is ' + ChildService.someAwesomeStuff());
  };
});
var BaseService = (function () {
  var privateVar = 0;
  return {
    someAwesomeStuff: function () {
      if (privateVar === 42) {
        alert('You reached the answer!');
      }
      privateVar += 1;
      return privateVar;
    }
  };
}());
demo.factory('ChildService', function () {
  var ChildService = Object.create(BaseService);
  ChildService.someMoreAwesomeStuff = function () {
    alert('Awesome');
  };
  return ChildService;
});
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
mgechevpro
0viewers