我对角度路由器中的reuseStrategy有一个有趣的问题。
所以想象一下,我有一个组件,我想要“缓存”,所以如果我使用路由器回到这个组件它是,没有创建,ngOnInit和其他东西。这很酷,而且工作正常。
问题是 - 这个组件在模板中有<video autoplay>
标签。一切都运行正常,但是当使用来自路由器策略的缓存“重新渲染”组件时,存在被冻结的问题。我必须点击此视频才能开始播放。
所以问题是我可以使用任何类型的事件来通知我从缓存/路由器策略方式加载的组件吗?如果是,我可以这么简单:
event.subscribe(()=>this.videoElement.nativeElement.play());
你有什么想法吗?
路由器有一个你可以挂钩的NavigationEnd
event。
class Cmp {
constructor(private router: Router) {
router.events
.filter(e => e instanceof NavigationEnd)
.subscribe(() => {
this.videoEl.nativeElement.play()
});
}
}