UI 路由器 1.0 状态更改事件不起作用

UI Router 1.0 state change events not working

我正在将我的 Angular 1.5 应用程序迁移到 Angular UI 路由器 1.0-beta3 以使用组件路由器。我正在监听 $rootScope 上的状态更改事件,但是 none 的事件被触发了。

示例:

angular
    .module('app', [ 'ui.router' ])
    .config(function($stateProvider) {
        $stateProvider.state(
            'dashboard',
            {
                url: '/dashboard',
                component: 'dashboardComponent',
                resolve: {
                    enabled: function() { throw new Error('NOT ENABLED'); }
                }
            });
    })
    .run(function($rootScope) {
        $rootScope.$on('$stateChangeError', function() {
            // Never called
        });
    });

组件路由是否支持状态更改事件?

组件路由支持状态更改事件,但UI路由器在 v1.0 中处理事件的方式不同。

试试这个:

...

.run(function($transitions) {
    $transitions.onError({}, function() {
        // Works like a charm
    });
});

有关详细信息,请参阅 docs