Angular js $rootScope.$on 根本没有被访问,就好像它从未存在过一样

Angular js $rootScope.$on is not being reached at all as if it never existed

当我将 console.log 移动到 rootscope.on 上方时,它会打印它,但由于某种原因,就好像根本没有达到 rootscope.on:

'use strict';

var app = angular.module('myApp', ["ui.router"]);

app.config(function($stateProvider, $urlRouterProvider) {

  $urlRouterProvider.otherwise('/login');

  $stateProvider
    .state('app', {
      template: "<ui-view></ui-view>",
      abstract: true
    })
    .state('app.login', {
      url: '/login',
      controller: 'loginCtrl',
      templateUrl: 'content/auth/login.html',
      requireLogin: false,
      authorized: true
    })

    .state('app.register', {
      url: '/register',
      controller: 'registerCtrl',
      templateUrl: 'content/auth/register.html',
      requireLogin: true,
      authorized: true
    });
});


app.run(function($rootScope, $state) {

  $rootScope.$('$stateChangeStart', function(event, toState) {

    console.log("redirecting");

  })

});

你实际上并不是在调用 $on

改变

 $rootScope.$('$stateChangeStart', function(event, toState) {

    console.log("redirecting");

  })

  $rootScope.$on('$stateChangeStart', function(event, toState) {

    console.log("redirecting");

  })