2017-01-17 22 views
5

Tôi có ứng dụng góc 2 và muốn chặn các sự kiện tuyến đường, ngăn chúng xảy ra, phát hoạt ảnh và sau đó tiếp tục định tuyến.Góc 2 Ngăn chặn các sự kiện tuyến đường và sau đó định tuyến sau

những suy nghĩ của tôi là này

nếu tôi có một lớp

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. 
      } 
     }) 
    } 
} 

Có cách nào để ngăn chặn router mà từ khi kết thúc quá trình chuyển hướng?

+0

Bạn có thể nối thêm thứ gì đó như '? ShowAnimation' vào URL và mọi thay đổi url xảy ra không, nó sẽ kiểm tra xem cờ đó có ở đó không và nếu có, sẽ làm hoạt ảnh trước khi chuyển sang địa chỉ của tuyến đường gốc? – Pytth

Trả lời

8

bạn có thể tạo một người bảo vệ CanActivate cho phụ huynh Route, nơi bạn có thể dừng chuyển hướng dựa trên một số biến toàn cầu, Biến thể có giá trị dựa trên nếu hoạt hình đã được chứng minh hay không.

Vì vậy, những gì bạn có thể làm là,

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 
} 

Đọc thêm về CanActivate here.

Hy vọng điều này sẽ giúp ích !!

Các vấn đề liên quan