ui-router获取转换信息

时间:2016-05-26 13:44:44

标签: javascript angularjs angular-ui-router

我有以下情况:

在解决阶段,有时刷新时某些依赖项会失败。虽然在$ rootScopeService上捕获错误并正常处理它,但我需要在早期的一个(在$ exceptionHandler服务的装饰器实现中)知道我在从一个状态转换到另一个状态期间失败了。

$ state服务提供转换,不幸的是,在解析成功后填充,所以我无法使用它。

有没有实施过的东西?

我目前的想法是实现一个额外的服务或装饰$ state服务来跟踪使用go函数或只是通过监听$ state事件来设置值。

是否有任何已实现的逻辑可实现此目的? (我的意思是在图书馆)或者还有其他任何建议吗?

由于

1 个答案:

答案 0 :(得分:1)

这可能是一个穷人的解决方案,但你可以使用类似的东西:

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

$rootScope.$on('$stateChangeSuccess', 
    function(e, toState, toParams, fromState, fromParams, $rootScope){
         $rootScope.targetState = undefined })

然后在您的解析函数中,通过以下内容访问目标状态:

function myResolve($rootScope) {
    console.log($rootScope.targetState)
}

我在我的应用程序中工作。状态转换监视在我的应用程序的运行块中实现。