如何使用Angular的路由器使用重用策略来了解组件是否已呈现

问题描述 投票:0回答:1

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

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

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

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

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

你有什么想法吗?

angular angular-ui-router angular2-routing
1个回答
1
投票

路由器有一个你可以挂钩的NavigationEnd event

class Cmp {
  constructor(private router: Router) {
    router.events
      .filter(e => e instanceof NavigationEnd)
      .subscribe(() => {
        this.videoEl.nativeElement.play()
      });
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.