angularjs – 什么是Angular ui-router生命周期? (用于调试静默错误)

前端之家收集整理的这篇文章主要介绍了angularjs – 什么是Angular ui-router生命周期? (用于调试静默错误)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我找到的最好的是 http://www.ng-newsletter.com/posts/angular-ui-router.html.它不会像例如,$ stateChangeStart,exampleState.onEnter,exampleState.resolve和exampleState.templateProvider火的顺序那么深。

一个伟大的答案格式将是干净的。就像是:

>状态foo的初始页面加载:

>角生命周期步骤1
> UI路由器生命周期步骤1
> UI路由器生命周期解析发生
> UI路由器生命周期onEnter fire
>角生命周期步骤2

> State change foo – >酒吧

> $ stateChangeStart event fires
> foo onExit fire
> bar onEnter Fires
> templateUrl获取模板
> UI路由器插回到摘要循环(或任何地方)的Angular生命周期。

>嵌套状态
>多个命名视图:
> ui-sref点击

谢谢!

编辑:调试功能提供足够的洞察力以满足需要。参见我的answer below代码片段。

经过一些实验,我想出了如何看到生命周期足够好,调试我的应用程序,并得到一个感觉发生了什么。使用所有事件,包括onEnter,onExit,stateChangeSuccess,从 here的viewContentLoaded,给了我一个体面的图片,当事情发生时,一个更加灵活和特定于我的代码比写出的生命周期。在应用程序模块的“运行”功能中,我放置:

这个代码会节省我的时间和困惑,如果我开始使用它,当我第一次使用Angular和UI路由器。 UI路由器需要一个“调试”模式,默认情况下启用它。

$rootScope.$on('$stateChangeStart',function(event,toState,toParams,fromState,fromParams){
  console.log('$stateChangeStart to '+toState.name+'- fired when the transition begins. toState,toParams : \n',toParams);
});
$rootScope.$on('$stateChangeError',fromParams,error){
  console.log('$stateChangeError - fired when an error occurs during transition.');
  console.log(arguments);
});
$rootScope.$on('$stateChangeSuccess',fromParams){
  console.log('$stateChangeSuccess to '+toState.name+'- fired once the state transition is complete.');
});
$rootScope.$on('$viewContentLoading',viewConfig){
   console.log('$viewContentLoading - view begins loading - dom not rendered',viewConfig);
});

/* $rootScope.$on('$viewContentLoaded',function(event){
     // runs on individual scopes,so putting it in "run" doesn't work.
     console.log('$viewContentLoaded - fired after dom rendered',event);
   }); */

$rootScope.$on('$stateNotFound',unfoundState,fromParams){
  console.log('$stateNotFound '+unfoundState.to+'  - fired when a state cannot be found by its name.');
  console.log(unfoundState,fromParams);
});

猜你在找的Angularjs相关文章