Why can't I inject $scope into a factory in Angular?
<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>