title: Should angular $watch be removed when scope destroyed?
body: <p>Currently working on a project where we found huge memory leaks when not clearing broadcast subscriptions off destroyed scopes. The following code has fixed this:</p>
  
  <pre><code>var onFooEventBroadcast = $rootScope.$on('fooEvent', doSomething);
  
  scope.$on('$destroy', function() {
      //remove the broadcast subscription when scope is destroyed
      onFooEventBroadcast();
  });
  </code></pre>
  
  <p><strong>Should this practice also be used for watches?</strong> Code example below:</p>
  
  <pre><code>var onFooChanged = scope.$watch('foo', doSomething);
  
  scope.$on('$destroy', function() {
      //stop watching when scope is destroyed
      onFooChanged();
  });
  </code></pre>