广播状态名称 Angular js $stateChangeStart

broadcast state name Angular js $stateChangeStart

我想创建一个应该 return 当前状态名称的工厂,我在控制器中尝试了这段代码:

$rootScope.$on('$stateChangeStart', function (e, toState, toParams, fromState, fromParams) {
     $rootScope.tabName  = fromState.name;          
 });

但此信息仅在调用特定控制器时可用,我想让此信息在整个项目中可用。

你可以换一种方式。

angular.module('app')
.run(['$state', '$cookies', '$rootScope', function($state, $cookies, $rootScope) {
    $rootScope.$on('$stateChangeStart', function(e, toState, toParams, fromState, fromParams) {

        $rootScope.tabName  = fromState.name;       
    });
});

与其将它放在控制器中,不如在应用程序初始化时调用的模块的运行方法中使用它。