title: How to $watch but only update a model on an event from another controller
body: <p>I have two partials and two controllers and some data in <code>$localstorage</code>. One of them is a header that displays user data and the other is a user profile data entry screen. When that screen saves it updates <code>$localstorage</code>.</p>
  
  <p>When they click <kbd>OK</kbd> on the data entry screen, I want the data in the header to update.</p>
  
  <p>Right now I have a <code>$watch</code> over the <code>$localstorage</code> in the header which recopies that into <code>$scope.user</code> (which the partial is bound to), and it's working to keep the header updated, but:</p>
  
  <ul>
  <li>It updates the header character by character as they type. This causes a delay when they type each character, and it's a strange UX.</li>
  <li>It updates the header even if they don't click <kbd>OK</kbd> to save the changes</li>
  </ul>
  
  <p>I don't know how to hook up an event from one controller to another, and even if I did, I don't know how to say "refresh the model" inside the header controller.</p>
  
  <p>How can I do this?</p>