title: $watch an object
body: <p>I want to watch for changes in a dictionary, but for some reason watch callback is not called.</p>
  
  <p>Here is a controller that I use:</p>
  
  <pre><code>function MyController($scope) {
      $scope.form = {
          name: 'my name',
          surname: 'surname'
      }
  
      $scope.$watch('form', function(newVal, oldVal){
          console.log('changed');
      });
  }
  </code></pre>
  
  <p>Here is <a href="http://jsfiddle.net/Y8ByG/" rel="noreferrer">fiddle</a>.</p>
  
  <p>I expect $watch callback to be fired each time name or surname is changed, but it doesn't happen.</p>
  
  <p>What is the correct way to do it?</p>