我正在使用$state.go(url)
在一些工厂中导航。为了避免闪烁,我想订阅我的动画,以便在新状态完全加载时启动。 (不只是网址更改)
如果有任何方法在插入状态的html和/或运行第一个digest
周期时调用的工厂中添加回调?
答案 0 :(得分:1)
您可以自由操作$stateChangeStart
并继续$viewContentLoaded
次活动。
您的状态与您在状态配置中为解析功能而添加的许多承诺一样精确。因此,如果您的满载状态取决于数据准备情况和页面呈现完成状态 - 您需要确保控制器在您遗漏任何内容之前不会加载。
只有在这些事件之间显示动画的意识是 - 当前状态下的每个视图都将单独调用$viewContentLoaded
。
如果是这样的话,我会在看到多个子视图等于发生的事件数后卸载动画。
答案 1 :(得分:1)
您可以收听状态转换完成时触发的事件$stateChangeSuccess
:
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){
// your code here
});