2015-10-22 21 views
0

比方说,我有这样我的模块中:错误不被打印出来的决心,UI路由器上

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

正如你所看到的,我不注射$stateparams,因此我无法加载控制器风景。但是为什么控制台不像在其他地方那样给出任何解决错误?如果你在解决问题时有一些逻辑,调试可能会很痛苦。是否有可能以某种方式“解决”控制台?

+0

您必须在“$ stateChangeError”事件

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

听'不能访问未定义'的'userId'。 '$ stateParams'实际上是在该函数内部定义的吗? – Gustav

+0

Noop,你什么也得不到。只是一个空白页面。 – Per

+0

请添加ui-router作为问题的标签 –

回答

0

从文档:

$ stateChangeError - 当过渡过程中发生错误解雇。重要的是要注意,如果你的解析函数(javascript错误,不存在的服务等)有任何错误,它们将不会抛出传统。您必须监听此$ stateChangeError事件才能捕获所有错误。使用event.preventDefault()来阻止$ UrlRouter将URL恢复到先前的有效位置(在URL导航的情况下)。

如果您想了解更多关于UI路由器事件,检查我还以为你会得到一些API here