Angularjs Angular JS,无法获取rootScope的句柄

Angularjs Angular JS,无法获取rootScope的句柄,angularjs,Angularjs,我使用的是角度1.5.x 下面是我的路由逻辑,但我无法获得rootScope的句柄。 你能告诉我可能出了什么问题吗 更新:我已经根据下面的回复更新了路由逻辑。 我还是打不到控制器 (function() { 'use strict'; angular .module('icebergApp') .config(setupRouting); setupRouting.$inject = ['$stateProvider', '$urlRouterProvider', '$roo

我使用的是角度1.5.x

下面是我的路由逻辑,但我无法获得rootScope的句柄。 你能告诉我可能出了什么问题吗

更新:我已经根据下面的回复更新了路由逻辑。 我还是打不到控制器

(function() {
'use strict';

angular
    .module('icebergApp')
    .config(setupRouting);

setupRouting.$inject = ['$stateProvider', '$urlRouterProvider', '$rootScope'];

function setupRouting($stateProvider, $urlRouterProvider, $rootScope) {
    $urlRouterProvider.otherwise("/iceberg-ui");
    $stateProvider
        .state('iceberg.reconlist', {
            url: "/iceberg-ui",
            templateUrl: "app/iceberg/reconlist/reconlist.view.html",
            controller: 'ReconListController as vm'
        })

    $rootScope.$on('$stateChangeStart',function(event, toState, toParams, fromState, fromParams){
        console.log('$stateChangeStart to '+toState.name+'- fired when the transition begins. toState,toParams : \n',toState, toParams);
    });
    $rootScope.$on('$stateChangeError',function(event, toState, toParams, fromState, fromParams, error){
        console.log('$stateChangeError - fired when an error occurs during transition.');
        console.log(arguments);
    });
    $rootScope.$on('$stateChangeSuccess',function(event, toState, toParams, fromState, fromParams){
        console.log('$stateChangeSuccess to '+toState.name+'- fired once the state transition is complete.');
    });
    $rootScope.$on('$viewContentLoading',function(event, viewConfig){
        console.log('$viewContentLoading - view begins loading - dom not rendered',viewConfig);
    });

    $rootScope.$on('$stateNotFound',function(event, unfoundState, fromState, fromParams){
        console.log('$stateNotFound '+unfoundState.to+'  - fired when a state cannot be found by its name.');
        console.log(unfoundState, fromState, fromParams);
    });
}
}());
控制器

(function() {
'use strict';

var myApp = angular.module('iceberg.reconlist', ['ui.router']);
myApp.controller('ReconListController', ReconListController);

ReconListController.$inject = ['ReconListService'];

function ReconListController(ReconListService) {
    var vm = this;
}
}());
模块

(function() {
'use strict';

angular.module('icebergApp', [
      'ui.router',
    'iceberg.reconlist'
]);

angular.module('iceberg.reconlist', [     
]);

}());    

$rootScope
.config()
中不可用。那里只有提供者可用。您必须做的事情是将代码拆分,将
$rootScope
部分放入
.run
方法中

angular
    .module('app')
    .config(setupRouting);

setupRouting.$inject = ['$stateProvider', '$urlRouterProvider'];

function setupRouting($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise("/iceberg-ui");
    $stateProvider
        .state('iceberg.reconlist', {
            url: "/iceberg-ui",
            templateUrl: "app/iceberg/reconlist/reconlist.view.html",
            controller: 'ReconListController as vm'
        })


}
}());

angular.module('app').run(setupRoutingEventListeners);

setupRouting.$inject = ['$rootScope'];

function setupRoutingEventListeners($rootScope) {
        $rootScope.$on('$stateChangeStart',function(event, toState, toParams, fromState, fromParams){
        console.log('$stateChangeStart to '+toState.name+'- fired when the transition begins. toState,toParams : \n',toState, toParams);
    });
    $rootScope.$on('$stateChangeError',function(event, toState, toParams, fromState, fromParams, error){
        console.log('$stateChangeError - fired when an error occurs during transition.');
        console.log(arguments);
    });
    $rootScope.$on('$stateChangeSuccess',function(event, toState, toParams, fromState, fromParams){
        console.log('$stateChangeSuccess to '+toState.name+'- fired once the state transition is complete.');
    });
    $rootScope.$on('$viewContentLoading',function(event, viewConfig){
        console.log('$viewContentLoading - view begins loading - dom not rendered',viewConfig);
    });

    $rootScope.$on('$stateNotFound',function(event, unfoundState, fromState, fromParams){
        console.log('$stateNotFound '+unfoundState.to+'  - fired when a state cannot be found by its name.');
        console.log(unfoundState, fromState, fromParams);
    });
}

$rootScope
.config()
中不可用。那里只有提供者可用。您必须做的事情是将代码拆分,将
$rootScope
部分放入
.run
方法中

angular
    .module('app')
    .config(setupRouting);

setupRouting.$inject = ['$stateProvider', '$urlRouterProvider'];

function setupRouting($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise("/iceberg-ui");
    $stateProvider
        .state('iceberg.reconlist', {
            url: "/iceberg-ui",
            templateUrl: "app/iceberg/reconlist/reconlist.view.html",
            controller: 'ReconListController as vm'
        })


}
}());

angular.module('app').run(setupRoutingEventListeners);

setupRouting.$inject = ['$rootScope'];

function setupRoutingEventListeners($rootScope) {
        $rootScope.$on('$stateChangeStart',function(event, toState, toParams, fromState, fromParams){
        console.log('$stateChangeStart to '+toState.name+'- fired when the transition begins. toState,toParams : \n',toState, toParams);
    });
    $rootScope.$on('$stateChangeError',function(event, toState, toParams, fromState, fromParams, error){
        console.log('$stateChangeError - fired when an error occurs during transition.');
        console.log(arguments);
    });
    $rootScope.$on('$stateChangeSuccess',function(event, toState, toParams, fromState, fromParams){
        console.log('$stateChangeSuccess to '+toState.name+'- fired once the state transition is complete.');
    });
    $rootScope.$on('$viewContentLoading',function(event, viewConfig){
        console.log('$viewContentLoading - view begins loading - dom not rendered',viewConfig);
    });

    $rootScope.$on('$stateNotFound',function(event, unfoundState, fromState, fromParams){
        console.log('$stateNotFound '+unfoundState.to+'  - fired when a state cannot be found by its name.');
        console.log(unfoundState, fromState, fromParams);
    });
}

你的模块在哪里。我认为它的问题不是
module('app')
可能应该是
module('icebergApp')
请忽略这一点,这是冰山app,我刚刚在上面纠正过。是复制粘贴错误。访问rootScopewhere是你的模块icebergApp还是个问题。我认为它的问题不是
module('app')
可能应该是
module('icebergApp')
请忽略这一点,这是冰山app,我刚刚在上面纠正过。是复制粘贴错误。访问rootScope仍然是一个问题。如果这样,我可以点击rootScope并访问偶数处理程序。但我仍然看不到路由正确工作。我的路由服务没有正确地传递到控制器。我已更新我的控制器和app.module定义。我怎样才能知道为什么它没有击中我的控制器。?感谢@Deblaton Jean Philipper提供的解决方案。这是有效的,我能够击中根范围并访问偶数处理程序。但我仍然看不到路由正确工作。我的路由服务没有正确地传递到控制器。我已更新我的控制器和app.module定义。我怎样才能知道为什么它没有击中我的控制器。?感谢Deblaton Jean-Philippe提供的解决方案