title: Why can't I inject $scope into a factory in Angular?
body: <p>I have a factory that needs to listen for a broadcast event. I injected <code>$scope</code> into the factory so I could use <code>$scope.$on</code>. But as soon as I add <code>$scope</code> to the parameter list I get an injector error.</p>
  
  <p>This works fine:</p>
  
  <pre><code>angular.module('MyWebApp.services')
      .factory('ValidationMatrixFactory', ['$rootScope', function($rootScope) {
          var ValidationMatrixFactory = {};
          return ValidationMatrixFactory;
      }]);
  </code></pre>
  
  <p>This throws an injector error:</p>
  
  <pre><code>angular.module('MyWebApp.services')
      .factory('ValidationMatrixFactory', ['$scope', '$rootScope', function($scope, $rootScope) {
          var ValidationMatrixFactory = {};
          return ValidationMatrixFactory;
      }]);
  </code></pre>
  
  <p>Why can't I inject <code>$scope</code> into a factory? And if I can't, do I have any way of listening for events other than using <code>$rootScope</code>?</p>