假设我的模块中有这个:
resolve: {
user: function(UserLoader){
return new UserLoader($stateParams.userId);
}
}
controller..
如您所见,我没有注入$stateparams
,因此无法加载控制器和视图。但是为什么控制台没有在解决方案上给出任何错误,因为它在其他地方都有?如果你的决心有一些逻辑,调试可能会很痛苦。是否有可能以某种方式“打开”控制台?
答案 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