解析,ui-router上不会打印出错误

时间:2015-10-22 13:45:10

标签: angularjs error-handling angular-ui-router

假设我的模块中有这个:

resolve: {
        user: function(UserLoader){
          return new UserLoader($stateParams.userId);
        }
      }
controller..

如您所见,我没有注入$stateparams,因此无法加载控制器和视图。但是为什么控制台没有在解决方案上给出任何错误,因为它在其他地方都有?如果你的决心有一些逻辑,调试可能会很痛苦。是否有可能以某种方式“打开”控制台?

1 个答案:

答案 0 :(得分:0)

来自文档:

  

$ stateChangeError - 在转换期间发生错误时触发。重要的是要注意,如果您的解析函数(javascript错误,不存在的服务等)中有任何错误,它们将不会传统抛出。您必须侦听此$ stateChangeError事件以捕获所有错误。使用event.preventDefault()来阻止$ UrlRouter将URL恢复到之前的有效位置(如果是URL导航)。

你必须听'$ stateChangeError'事件

$rootScope.$on('$stateChangeError', 
function(event, toState, toParams, fromState, fromParams, error){ 
// an error occured, do something like $log.error(error) 
})

如果您想了解有关ui-router事件的更多信息,请查看api here