title: Is the angular scope binding &(ampersand) a one time binding?
body: <p>Is the angular scope binding &amp;(ampersand) a one time binding?
  I see it referred to as a one-way binding, but is it also one-time?</p>
  
  <p>Let's say I have:</p>
  
  <pre><code>&lt;my-custom-directive data-item="item" /&gt;
  </code></pre>
  
  <p>And my directive is declared as follows:</p>
  
  <pre><code>.directive('myCustomDirective', [
  '$log', function ($log) {
  return {
      restrict: 'E',
      templateUrl: '/template.html',
      scope: {
          dataItem: '&amp;'
      }
      controller: function ($scope) {
          // ....
      }
  }])
  </code></pre>
  
  <p>The reason I'm asking if the binding is one-time is because that seems to be what I'm observing, that is. If <code>item</code> in the parent scope is updated, the one in the directive is not updated.</p>
  
  <p><strong>Am I right in saying that the binding is one time?</strong></p>
  
  <p>To achieve what I want, where the directive keeps a copy without affecting the parent scope's item -- I did this:</p>
  
  <pre><code>.directive('myCustomDirective', [
  '$log', function ($log) {
  return {
      restrict: 'E',
      templateUrl: '/template.html',
      scope: {
          dataItemOriginal: '='
      },
      link: function ($scope) {
          $scope.$watch('dataItemOriginal', function () {
              $scope.dataItem = window.angular.copy($scope.dataItemOriginal);
          });
      },
      controller: function ($scope) {
     //....
     }
  }])
  </code></pre>
  
  <p>Is this proper or is there a better way?</p>