当前位置:  开发笔记 > 编程语言 > 正文

Angular 2拦截路由事件,然后稍后路由

如何解决《Angular2拦截路由事件,然后稍后路由》经验,为你挑选了1个好方法。

我有一个角度2应用程序,并希望拦截路线事件,防止它们发生,播放动画,然后继续路由.

我的想法是这样的

如果我有课

export class SomeComponent {
    constructor(private router: Router){
        router.events.subscribe(evt => {
            if(evt instanceof NavigationStart){
                //I would like to cancel the event here the first time, and then 
                //play an animation, after the animation is done, trigger the router
                //to go to the original route it wanted to.
            }
        })
    }
}

有没有办法阻止该路由器完成导航过程?



1> Madhu Ranjan..:

您可以CanActivate为父路径创建一个保护,您可以根据某个全局变量停止导航.该变量可以具有基于动画是否已显示的值.

所以你可能会做的是,

export class AnimationGuard implements CanActivate {
  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
    if(HasAnimationRun){
      return true;
    }
    runAnimation(state.url);
    return false;
  }
}

runAnimation(url){
  // run animation
  // set global variable.
  // navigate to url
}

在这里阅读更多关于CanActivate的信息.

希望这可以帮助!!

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有