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">
  <a href="#/">Home</a>
  <a href="#/about">About</a>
  <div ng-view></div>
</body>
</html>
 
var template = '{{commonVar + customLabel}}<button ng-click="commonScopeMethod()">Click to check</button><button ng-click="magic()">Some magic...</button>';
var demo = angular.module('demo', ['ngRoute'])
.config(function ($routeProvider) {
  $routeProvider
  .when('/', {
    controller: 'ChildCtrl1',
    template: template
  })
  .when('/about', {
    controller: 'ChildCtrl2',
    template: template
  });
});
angular.module('demo').controller('MainCtrl', function ($scope) {
});
function BaseCtrl($scope) {
  $scope.commonScopeMethod = function () {
    alert('The answer of everything');
  };
  $scope.commonVar = 'What is ';
}
BaseCtrl.prototype.baseMethod = function () {
  return (([]+![])[+[]]+([]+![])[+!+[]]+([]+[][+[]])[+!+[]+!+[]+!+[]+!+[]+!+[]]+([]+![])[+!+[]+!+[]]);
};
function ChildCtrl1($scope, $location) {
  BaseCtrl.call(this, $scope, $location);
  $scope.customLabel = 42;
  var self = this;
  $scope.magic = function () {
    alert('This is not ' + self.baseMethod());
  };
}
ChildCtrl1.prototype = Object.create(BaseCtrl.prototype);
ChildCtrl1.prototype.childMethod1 = function () {
  this.commonMethod1();
};
//Register ChildCtrl1 as AngularJS controller
demo.controller('ChildCtrl1', ChildCtrl1);
function ChildCtrl2($scope, $location) {
  BaseCtrl.call(this, $scope, $location);
  $scope.customLabel = 1.618;
  var self = this;
  $scope.magic = function () {
    alert('This is ' + self.baseMethod());
  };
}
ChildCtrl2.prototype = Object.create(BaseCtrl.prototype);
ChildCtrl2.prototype.childMethod1 = function () {
  this.commonMethod1();
};
//Register ChildCtrl1 as AngularJS controller
demo.controller('ChildCtrl2', ChildCtrl2);
Output

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

Dismiss x
public
Bin info
mgechevpro
0viewers