Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body ng-controller="ctrl">
  
  
  <div>object: {{dataObject}}</div>
  <div shadow="dataObject">
    {{boo}}
    <input ng-model="dataObject.foo">
    <input ng-model="dataObject.bar">
    <button ng-click="commit()">save</button>
  </div>
  <hr>  
  <div>scalar: {{dataScalar}}</div>
  <div shadow="dataScalar">
    {{boo}}
    <input ng-model="dataScalar">
    <button ng-click="commit()">save</button>
  </div>
  
</body>
</html>
 
angular.module('app', [])
  
.controller('ctrl', function($scope) {
  $scope.dataObject = {
    foo: 'abcd',
    bar: 'efgh'
  };    
  $scope.dataScalar = 'zzzz';
})
.directive('shadow', function() {
  return {
    scope: true,
    link: function(scope, el, att) {
      scope[att.shadow] = angular.copy(scope[att.shadow]);
      scope.commit = function() {
        scope.$parent[att.shadow] = angular.copy(scope[att.shadow]);
      };
    }
  };
});
Output

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

Dismiss x
public
Bin info
anonymouspro
0viewers