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
我正在将我的 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