Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
/* ---------------------------------------------------------------------------*/
/*                                                                            */
/*                                 First Part                                 */
/*                                                                            */
/* ---------------------------------------------------------------------------*/              
//This notation allow us to stay in pure javascript world
angular.injector(['ng'])
.invoke(function ($parse, $rootScope) {
  //new clean scope (optionnal, it will work directly on $rootScope)
  var $scope = $rootScope.$new();
  //allocate simple value
  $scope.foo = 'bar';
  //here the magic
  var foo = $parse('foo');
  /*
    The function which has been returned look for a context to interpolate the
    value
  */
  console.log(foo($scope));
  // display => bar
  /*
    Redefine foo value
   */
  foo.assign($scope, 'foo');
  /*
    $scope has changed Oo
   */
  console.log($scope.foo);
  // display => foo
});
/* ---------------------------------------------------------------------------*/
/*                                                                            */
/*                                 First Part                                 */
/*                                                                            */
/* ---------------------------------------------------------------------------*/              
angular.injector(['ng'])
.invoke(function ($parse, $rootScope) {
  var $scope = $rootScope.$new();
  //allocate function
  $scope.foo = function (argFoo) {
    return argFoo;
  };
  //allocate value
  $scope.someValue = 'foo';
  var foo = $parse('foo(someValue)');
  /*
    The function returned by the $parse service has a second argument wich will
    override the context in case of conflict
   */
  console.log(foo($scope, {someValue: 'bar'}));
  // display => bar
});
Output 300px

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

Dismiss x
public
Bin info
IxDaypro
0viewers