如何使用Angular的路由器使用ReuseStrategy呈现组件

时间:2017-12-16 19:14:27

标签: angular angular-ui-router angular2-routing

我对角度路由器中的reuseStrategy有一个有趣的问题。

所以想象一下,我有一个我想要“缓存”的组件,所以如果我使用路由器回到这个组件它是,没有创建,ngOnInit和其他东西。 这很酷,而且工作正常。

问题是 - 此组件在模板中有<video autoplay>标记。一切都运行正常,但是当使用来自路由器策略的缓存“重新渲染”组件时,存在被冻结的问题。 我必须点击此视频才能开始播放。

所以问题是我可以使用任何类型的事件来通知我从缓存/路由器策略方式加载的组件吗? 如果是的话我可以这么简单:

event.subscribe(()=>this.videoElement.nativeElement.play());

你有什么想法吗?

1 个答案:

答案 0 :(得分:1)

路由器有NavigationEnd event可以挂钩。

class Cmp {
  constructor(private router: Router) {
    router.events
      .filter(e => e instanceof NavigationEnd)
      .subscribe(() => {
        this.videoEl.nativeElement.play()
      });
  }
}